|
Ok!
|
|
|
Ok!
|
---|---|---|---|---|
161 | function price($path, $part){ $file = fopen($path, "r"); $text = fread($file, filesize($path)); $lines = explode(PHP_EOL, $text); $v = false; $str = "<table>"; foreach ($lines as $i=>$line) { if (strpos($line, $part)) { $v = true; continue; } if(strpos($line, ";") > 2 && $v == true){ $l = explode(";", $line); $str .= "<tr><td>" . $l[0] . "</td><td>" . $l[1] . "</td></tr>"; } if(strpos($line, ";") === false && $v == true){ $str .= "<tr><th colspan='2'>" . $line . "</th></tr>"; } if (strpos(" ".$line, ";;") > 0 && $v == true) { $v = false; break; } } $str .= "</table>"; return $str; } | прайс, price, функция прайс | 10900 | Функция постройки прайса таблицы по текстовой таблице в файле |
160 | Было так $layout->addField('', new sbLayoutDelim()); Нужно для php7 исправить $layout(.*), new sbLayout(.*)((.*))); $l = new sbLayout$2($3); $layout$1, $l); | замена, sbuilder | 1500 | заменить первое на второе при редактировании нотисов php7 в сбилдер |
159 | function lat2cyr($s) { $sb = ""; $i = 0; $lc = false; while ($i < strlen($s)) { $ch = substr($s, $i, 1); $lc = ctype_lower($ch); // true/false $ch = mb_strtoupper($ch); if ($ch == 'J') { // Префиксная нотация вначале $i++; // преходим ко второму символу сочетания $ch = strtoupper(substr($s, $i, 1)); switch ($ch) { case 'O': $sb .= ch('Ё', $lc); break; case 'H': if ($i + 1 < strlen($s) && mb_strtoupper(substr($s, $i + 1, 1) == 'H')){ // проверка на постфикс (вариант JHH) $sb .= ch('Ъ', $lc); $i++; // пропускаем постфикс } else{ $sb .= ch('Ь', $lc); } break; case 'U': $sb .= ch('Ю', $lc); break; case 'A': $sb = ch('Я', $lc); break; default: break; } } else if ($i + 1 < strlen($s) && mb_strtoupper(substr($s, $i + 1, 1)) == 'H') { // Постфиксная нотация, требует информации о двух следующих символах. Для потока придется сделать обертку с очередью из трех символов. switch ($ch) { case 'Z': $sb .= ch('Ж', $lc); break; case 'K': $sb .= ch('Х', $lc); break; case 'C': $sb .= ch('Ч', $lc); break; case 'S': if ($i + 2 < strlen($s) && mb_strtoupper(substr($s, $i + 2, 1)) == 'H') { // проверка на двойной постфикс $sb .= ch('Щ', $lc); $i++; // пропускаем первый постфикс } else { $sb .= ch('Ш', $lc); } break; case 'E': $sb .= ch('Э', $lc); break; case 'I': $sb .= ch('Ы', $lc); break; default: break; } $i++; // пропускаем постфикс } else {// одиночные символы switch ($ch) { case 'A': $sb .= ch('А', $lc); break; case 'B': $sb .= ch('Б', $lc); break; case 'V': $sb .= ch('В', $lc); break; case 'G': $sb .= ch('Г', $lc); break; case 'D': $sb .= ch('Д', $lc); break; case 'E': $sb .= ch('Е', $lc); break; case 'Z': $sb .= ch('З', $lc); break; case 'I': $sb .= ch('И', $lc); break; case 'Y': if (mb_strtoupper(substr($s, $i + 1, 1) === ' ')){ // проверка на пробел после Y $sb .= ch('И', $lc); $i++; // пропускаем постфикс } else{ $sb .= ch('Й', $lc); } break; case 'K': $sb .= ch('К', $lc); break; case 'L': $sb .= ch('Л', $lc); break; case 'M': $sb .= ch('М', $lc); break; case 'N': $sb .= ch('Н', $lc); break; case 'O': $sb .= ch('О', $lc); break; case 'P': $sb .= ch('П', $lc); break; case 'R': $sb .= ch('Р', $lc); break; case 'S': $sb .= ch('С', $lc); break; case 'T': $sb .= ch('Т', $lc); break; case 'U': $sb .= ch('У', $lc); break; case 'F': $sb .= ch('Ф', $lc); break; case 'C': $sb .= ch('Ц', $lc); break; default: $sb .= ch($ch, $lc); } } $i++; // переходим к следующему символу } return (string)$sb; } function cyrlat($ch) { switch ($ch) { case 'А': return "A"; case 'Б': return "B"; case 'В': return "V"; case 'Г': return "G"; case 'Д': return "D"; case 'Е': return "E"; case 'Ё': return "JO"; case 'Ж': return "ZH"; case 'З': return "Z"; case 'И': return "I"; case 'Й': return "Y"; case 'К': return "K"; case 'Л': return "L"; case 'М': return "M"; case 'Н': return "N"; case 'О': return "O"; case 'П': return "P"; case 'Р': return "R"; case 'С': return "S"; case 'Т': return "T"; case 'У': return "U"; case 'Ф': return "F"; case 'Х': return "KH"; case 'Ц': return "C"; case 'Ч': return "CH"; case 'Ш': return "SH"; case 'Щ': return "SHH"; case 'Ъ': return "JHH"; case 'Ы': return "IH"; case 'Ь': return "JH"; case 'Э': return "EH"; case 'Ю': return "JU"; case 'Я': return "JA"; default: return $ch; } } function cyr2lat($s) { $sb = ""; $ch = preg_split('//u', $s, null, PREG_SPLIT_NO_EMPTY); for ($i = 0; $i < count($ch); $i++) { $lc = preg_match('~^p{Lu}~u', $ch[$i]) ? 0 : 1; $v = $ch[$i]; $l = mb_strtoupper($v); $c = cyrlat($l); $lat = ch($c, $lc); $sb .= $lat; } return $sb; } /** * Вспомогательная функция для восстановления регистра */ function ch($ch, $tolower) { return $tolower ? mb_strtolower($ch) : mb_strtoupper($ch); } echo cyr2lat("провинции Арма") . " "; echo lat2cyr("Provinces of Lightness") . " "; | транслит, ретранслит | 100 | Транслит русско-латинский, латинско-русский |
158 | RewriteRule ^receipt/(.+)/$ receipt/full.php?tag=$1 [L] | редирект, строка на папку | 10970 | Перевод в htaccess с get параметра на папку и садресом |
157 | <?$name = substr($arItem['PREVIEW_TEXT'], strpos($arItem['PREVIEW_TEXT'], "<b>") + 3, strpos($arItem['PREVIEW_TEXT'], "</b>") - strpos($arItem['PREVIEW_TEXT'], "<b>") - 3)?> | substr | 10900 | Часть строки между символами <b> и </b> |
156 | basename(__DIR__) | php, родительская папка, parent folder | 120 | одительская папка php текущей директории без начального слеш |
155 | a:focus { outline: 3px solid transparent; color: #0b0c0c; background-color: #ffdd00; box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c; text-decoration: none; } | ссылка, оформление | 120 | Очень смешное оформление ссылок |
154 | AddEventHandler("main", "OnEndBufferContent", "ShowAuthorInsideNews"); function ShowAuthorInsideNews(&$content) { if (CModule::IncludeModule("iblock")) { if (strpos($content, '#YAKUBOV#') !== false) { $content = str_replace('#YAKUBOV#', author(), $content); } } } | функция, текст, инфоблок | 1340 | Обратотка вставки функции автора статьи. Когда в детальный текст инфоблока надо вставить функцию |
153 | print vsprintf("%04d-%02d-%02d", explode('-', '1988-8-1')); выведет 1988-08-01 | печать даты, php | 5900 | Печать даты в php |
152 | $('[name=docviewer]').show(200, function(){$(document).on('click', function(e){ $("#docviewer").hide() })}); | iframe close, закрыть iframe | 10900 | После показа iframe закрыть его по щелчку снаружи |