Полезные функции РНР (1 пост)
1559
Topic Curators:
Azzido
0
простенькая антиреклама
<? function ad_cut($str,$to){ $domains = array('http://','.ru','.su','.mobi','.ws','.eu','.tv','.cc','.tv','.name','.us','.biz','.info','.org','.net','.com','.co','.in'); $replacer = array_fill(0,count($domains),$to); $result = array_combine($domains,$replacer); return strtr($str,$result); } ?>
Changed: KOZZ (16.08.2010 / 23:09)
0
удаление строки из файла
<? function delete_str($f_name,$num){ # $f_name - файл в котором удаляем строку # $num - номер удаляемой строки $f = file($f_name); unset($f[$num]); if($num == (count($f)-1) && $num !== 0) {$f[$num-1] = str_replace("\r\n",'',$f[$num-1]);} if(file_put_contents($f_name,implode('',$f))) {return true;} else {return false;} } ?>
Changed: KOZZ (21.08.2010 / 00:35)
0
47, поправочка:
<? # удаление строки function delete_str($f_name,$num){ $f = file($f_name); unset($f[$num]); if($num == count($f) && $num !== 0) {$f[$num-1] = substr($f[$num-1],0,-2);}# убираем \r\n, если это последняя строка if(file_put_contents($f_name,implode('',$f))) {return true;} else {return false;} } ?>
Changed: KOZZ (21.08.2010 / 01:10)
0
Определение дизайна сайта в зависимости от браузера
Не функция ) регулярка
Не функция ) регулярка
$style = (preg_match('#linux|windows|Yahoo|Rambler|Yandex|Google|bsd|bsd|unix|macos|macintosh#i', $_SERVER['HTTP_USER_AGENT'])) ? 'web' : 'wap';
Changed: Владислав (22.08.2010 / 16:11)
Артём
23.08.2010 / 05:05
Пришелец
Пришелец
0
Узнаем день недели из time();
function ned($time){ if (isset($time)){ $d = date("l",time()); $time = str_replace(array('Sunday','Monday','Tuesday','Wednesday','Friday','Saturday') , array('Воскресенье','Понедельник','Вторник','Четверг','Пятница','Суббота'), $d); return $time; }else{ return false; } }пример:
echo ned(time());
Changed: Артём (23.08.2010 / 05:12)
0
Функция определения возраста по дате в формате 'dd.mm.yyyy'
function age($date) { $date=explode('.',$date); $m=date('m'); $year=date('Y')-$date[2]-1; if ($m>$date[1]) $year++; if ($m==$date[1]) if (date('d')>=$date[0]) $year++; return $year; }
0
Не знаю на 100 % велосипед это или нет..
функция аналог imolode(), отлично от неё тем, что работает как с обычными так и многомерными массивами.
функция аналог imolode(), отлично от неё тем, что работает как с обычными так и многомерными массивами.
function my_implode($line,$array) { $end=count($array); $str=''; for ($i=0; $i<$end; $i++) { if ($i==0) $value=reset($array); else $value=next($array); if (is_array($value)) $str.=my_implode($line,$value); else $str.=$value; if ($i<($end-1)) $str.=$line; } return $str; }
0
Вот из комментариев к функции implode на php.net
Recursive Implode <?php function r_implode($glue, $pieces) { foreach($pieces as $r_pieces) { if(is_array($r_pieces)) { $retVal[] = r_implode($glue, $r_pieces); } else { $retVal[] = $r_pieces; } } return implode($glue, $retVal); } ?>Пример:
<?php $test_arr = array(0, 1, array('a', 'b'), array(array('x', 'y'), 'z')); echo r_implode(',', $test_arr) . "\n"; $test_arr = array(0); echo r_implode(',', $test_arr) . "\n"; ?>Эта функция побыстрее будет работать немного, чем опубликованая выше.
Changed: Azzido (23.09.2010 / 07:17)
0
CSV/TSV-формат и PHP
Добавлено через 01:56 сек.
Преобразовать в верхний регистр первый символ строки
<? $rows = tsv_array($this->data['ModelName']['textarea_field']); ?>и
<? function tsv_array($s, $keys=false, $delimiter="\t") { $rows = explode("\n", r("\r", '', trim($s))); $min = null; $max = null; foreach ($rows as &$row) { $row = array_map('trim', explode($delimiter, $row)); $count = count($row); if ($min===null || $count<$min) { $min = $count; } if ($max===null || $count>$max) { $max = $count; } } unset($row); if ($max!=$min) { foreach ($rows as &$row) { for ($i=count($row); $i<=$max; $i++) { $row[] = false; } } unset($row); } if (!$keys) return $rows; if ($keys===true) { $keys = array_shift($rows); } $result = a(); foreach ($rows as $row) { $item = a(); for ($i=0; $i<count($row); $i++) { if (!isset($keys[$i])) continue; $item[$keys[$i]] = $row[$i]; } $result[] = $item; } return $result; } ?>
Добавлено через 01:56 сек.
Преобразовать в верхний регистр первый символ строки
<? function ucwords(string) { return string.charAt(0).toUpperCase() + string.substr(1).toLowerCase(); }
Changed: iNeeXT (05.10.2010 / 23:24)
0
Преобразование переводов строк
Метод преобразует переводы строк вне тэгов <pre> в тэги <br />. Данная функция идентична встроенной в PHP nl2br() за исключением того, что она игнорирует пробелы в тэгах <pre>.
Добавлено через 01:04 сек.
Функция преобразует XML-символы в их сущности
Принимает строку и преобразует в ней зарезервированные XML-символы в их сущности:
Амперсанд: &
Знаки больше и меньше: < >
Одинарная и двойная кавычки: ' "
Дефис: -
Эта функция игнорирует амперсанд, если он является частью существующих сущностей.
Метод преобразует переводы строк вне тэгов <pre> в тэги <br />. Данная функция идентична встроенной в PHP nl2br() за исключением того, что она игнорирует пробелы в тэгах <pre>.
<? if ( ! function_exists('nl2br_except_pre')) { function nl2br_except_pre($str) { $ex = explode("pre>",$str); $ct = count($ex); $newstr = ""; for ($i = 0; $i < $ct; $i ) { if (($i % 2) == 0) { $newstr .= nl2br($ex[$i]); } else { $newstr .= $ex[$i]; } if ($ct - 1 != $i) $newstr .= "pre>"; } return $newstr; } }
Добавлено через 01:04 сек.
Функция преобразует XML-символы в их сущности
Принимает строку и преобразует в ней зарезервированные XML-символы в их сущности:
Амперсанд: &
Знаки больше и меньше: < >
Одинарная и двойная кавычки: ' "
Дефис: -
Эта функция игнорирует амперсанд, если он является частью существующих сущностей.
<? if ( ! function_exists('xml_convert')) { function xml_convert($str) { $temp = '__TEMP_AMPERSANDS__'; // Replace entities to temporary markers so that // ampersands won't get messed up $str = preg_replace("/&#(\d );/", "$temp\\1;", $str); $str = preg_replace("/&(\w );/", "$temp\\1;", $str); $str = str_replace(array("&","<",">","\"", "'", "-"), array("&", "<", ">", """, "'", "-"), $str); // Decode the temp markers back to entities $str = preg_replace("/$temp(\d );/","&#\\1;",$str); $str = preg_replace("/$temp(\w );/","&\\1;", $str); return $str; } }
You must be logged in to perform actions!