10.10.2016 Bitrix, php, php скрипты #D7, ExpressionField
10.08.2016 Bitrix, php, php скрипты #D7, user
$arUsers = Bitrix\Main\UserGroupTable::getList( array( 'order'=>array('USER_ID' => 'asc'), 'group'=>array('USER_ID'), 'select' => array( 'USER_ID', 'USER_DATE_REGISTER' => 'USER.DATE_REGISTER', 'USER_ACTIVE' => 'USER.ACTIVE', 'USER_EMAIL' => 'USER.EMAIL', 'USER_LOGIN' => 'USER.LOGIN', 'USER_WORK_COMPANY' => 'USER.WORK_COMPANY', 'USER_NAME' => 'USER.NAME', 'USER_GROUP_STR', ), 'filter' => array( 'GROUP.ACTIVE' => 'Y', 'USER.ACTIVE' => 'Y', 'GROUP_ID' => array(3, 4), array( 'LOGIC' => 'OR', '=DATE_ACTIVE_FROM' => null, '<=DATE_ACTIVE_FROM' => $nowTimeExpression, ), array( 'LOGIC' => 'OR', '=DATE_ACTIVE_TO' => null, '>=DATE_ACTIVE_TO' => $nowTimeExpression, ), ), 'runtime' => array( 'USER_GROUP_STR' => array( 'data_type' => 'string', 'expression' => array('GROUP_CONCAT(%s)', 'GROUP_ID') ), ) ) )->fetchAll();
28.07.2016 Bitrix, php #form, $arResult["FORM_HEADER"]
function OnOnBeforeEventAdd(&$event, &$lid, &$arFields, &$message_id, &$files){ if ($event == 'ololo_form_event') { $isFiltered = false; $by="s_id"; $order="desc"; /// код совойства в которм должны быть файлы $arFilterField = Array( "SID" => "FILE_CODE_QUESTION" ); $rsQuestions = CFormField::GetList( $arFields['RS_FORM_ID'], "N", $by, $order, $arFilterField, $isFiltered ); if($isFiltered){ if ($arQuestion = $rsQuestions->Fetch()){ $arFilterAnswer = Array( "FIELD_TYPE" => "file", ); $rsAnswers = CFormAnswer::GetList( $arQuestion['ID'], $by, $order, $arFilterAnswer, $isFiltered ); if($isFiltered){ while ($arAnswer = $rsAnswers->Fetch()){ $file = CFormResult::GetFileByAnswerID($arFields['RS_RESULT_ID'], $arAnswer['ID']); if(intval($file['USER_FILE_ID']) > 0){ $files[] = $file['USER_FILE_ID']; } } } } } return $arFields; } }
07.07.2016 Bitrix, php, php скрипты #bitrix, mail
Подробней тут http://www.spravkaweb.ru/php/sovet/mail/file
$mailFields = array ( 'TITLE' => 'Тема письма ололо', 'TEXT' => 'Текст ололо', ); $arFile = array ( 0 => $_SERVER['DOCUMENT_ROOT'].'/upload/test.php', 1 => $_SERVER['DOCUMENT_ROOT'].'/robots.txt', ); function sendMessage($mailFields, $arFile) { $subject = '=?windows-1251?B?'.base64_encode($mailFields['TITLE']).'?='; // Subject: =?<кодировка текста>?<способ кодирования>?<закодированный Subject>?= // Кодировка текста = windows-1251 или koi8-r или .... смотря в какой кодировке был текст когда ты его (Subject) кодировал. // Способ кодирования = Q (quoted_printable) или B (base64) // Соответственно функции quoted_printable_encode или base64_encode // Но лучше не изобретать велосипед, а использовать iconv_mime_encode (благо тут уже все придумано). $comment_mail = $mailFields['TEXT']; $arAttachment = array(); if (!empty($arFile)) { foreach($arFile as $file) { $arFile = CFile::MakeFileArray($file); if($arFile){ $file = fopen($arFile['tmp_name'], "r"); $text = fread($file, filesize($arFile['tmp_name'])); fclose($file); $arAttachment[] = array( "attachment" => chunk_split(base64_encode($text)), "name" => $arFile["name"], "type" => $arFile["type"], "arFile" => $arFile, ); } } } $boundary = '#####' . time(); $sStartOrEndLetter = '--'; $sImplode = "\r\n"; $sHeader = ''; $sHeader.= 'From: "Ололий" <ololo@ololo.com>'.$sImplode; $sHeader.= 'To: ololo@ololo.com'.$sImplode; $sHeader.= 'Subject: '.$subject.$sImplode; $sHeader.= 'Mime-Version: 1.0'.$sImplode; $sHeader.= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$sImplode; $sMessage = ''; $sMessage.= $sStartOrEndLetter.$boundary.$sImplode; $sMessage.= 'Content-type: text/plain; charset="windows-1251"'.$sImplode; $sMessage.= 'Content-Transfer-Encoding: quoted-printable'.$sImplode; $sMessage.= "\n"; $sMessage.= $comment_mail; $sMessage.= "\n\n"; if(count($arAttachment) > 0){ foreach($arAttachment as $attachment){ $sMessage.= $sStartOrEndLetter.$boundary.$sImplode; $sMessage.= 'Content-Type: application/x-rar-compressed; name="'.$attachment['name'].'"'.$sImplode; $sMessage.= 'Content-Transfer-Encoding:base64'.$sImplode; $sMessage.= 'Content-Disposition:attachment;'.$sImplode; $sMessage.= $sImplode; $sMessage.= $attachment['attachment']; $sMessage.= $sImplode; } } $sMessage.= $sStartOrEndLetter.$boundary.$sStartOrEndLetter.$sImplode; // echo "<pre>"; // print_r($sHeader); // print_r($sMessage); // echo "</pre>"; if(mail('ololo@ololo.com', $subject, $sMessage, $sHeader) ){ print_r('cool'); }else{ print_r('bad'); } }
27.06.2016 Bitrix, php, php скрипты addFile, file
require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'; $arFileToUploads = $_FILES['userfile']; CAllFile::ResizeImage( &$arFileToUploads, // путь к изображению, сюда же будет записан уменьшенный файл array( "width" => 1000, // новая ширина "height" => 5000 // новая высота ), BX_RESIZE_IMAGE_PROPORTIONAL // метод масштабирования. обрезать прямоугольник без учета пропорций ); $arFileToUploads['MODULE_ID'] = 'iblock'; $sPathToSave = 'posts'; if(intval($USER->GetID()) > 0){ $sPathToSave .= '/user_'.intval($USER->GetID()); } $iFileId = CFile::SaveFile($arFileToUploads, $sPathToSave); $arFile = CFile::GetFileArray($iFileId); exit;
07.10.2015 php, php скрипты curl
$url = "https://dadata.ru/api/v2/suggest/address"; $headers = array( "Content-type: application/json", "Accept: application/json", "Authorization: Token ДЛИННЫЙ_КЛЮЧ" ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "query": "Москва Площадь Ленина 5 6", "count": 5 }'); $data = curl_exec($ch); if (curl_errno($ch)) { echo "Error: " . curl_error($ch); } else { curl_close($ch); echo json_decode($data, true); }
15.09.2014 php, php скрипты, Парсинг строки
11.04.2014 php, php скрипты debug
09.04.2014 Bitrix, php, php скрипты Регулярка, строки
function _array_merge_recursive($dest, $new) { if (!is_array($dest) && is_array($new)) return $new; if ( is_array($dest) && !is_array($new)) return $dest; if (!is_array($dest) && !is_array($new)) return array(); foreach ($new as $k => $v) { if (is_array($v) && isset($dest[$k]) && !is_numeric($k)) { $dest[$k] = _array_merge_recursive($dest[$k], $v); } else if (!is_numeric($k)) { $dest[$k] = $new[$k]; } else { $dest[] = $new[$k]; } } return $dest; }
Первый массив
Второй массив
Результат