Шпаргалка php

Шпаргалка php

Немного интересных моментов

Список опций командной строки - пример:

$ php -r "echo PHP_INT_MAX;"

Динамичное использование переменных

$zx = 123;
$с = 'x';
echo ${'z'.$с};// 123

Динамичное использование функции

$isfunc = 'image'.$format;

@$isfunc($idest,$path_cache,$quality);

Странные символы

// HEX-значение "c2" можно получить через dechex(ord(mb_substr($search,0,1))) а затем добавив к нему \x в итоге "\xc2"
// HEX-значение "A0" можно получить через javascript функцию escape(this.value) а затем добавив к нему \x в итоге "\xA0"
// для mysql SELECT CONV(ORD(SUBSTRING(description,1,1)),10,16) FROM table WHERE id=12345
$search = trim(str_replace("\xc2",' ',str_replace("\xA0",' ', $search)));// избавляем поисковую строку от возможных неправильных символов
$string = str_replace("\xC2\xA0"," ",$string);
SELECT REPLACE(description, '\xc2\xA0', ' ') FROM table WHERE id=12345

Неочевидные ссылки

Осторожнее при работе с ссылками:

$a = array('a','b','c');
foreach ($a as &$v) {

}
print_r($a);
foreach ($a as $v) {
    echo $v.PHP_EOL;
}
print_r($a);
foreach ($a as &$b) {
    $b = 'z';
}
print_r($a);

Вывод:

Array
(
    [0] => a
    [1] => b
    [2] => c
)
a
b
b
Array
(
    [0] => a
    [1] => b
    [2] => b
)
Array
(
    [0] => z
    [1] => z
    [2] => z
)

Максимальное кол-во ключей в POST-переменной

Столкнулся с проблемой, когда данные POST-запроса приходят в PHP не полностью, а именно 1000 ключей (читай переменных) в сумме.

Исправляем ситуацию:

1. в файле /etc/php5/apache2/php.ini увеличиваем значение переменной max_input_vars

2. в файле /etc/php5/apache2/conf.d/suhosin.ini увеличиваем значение переменной suhosin.post.max_vars и suhosin.request.max_vars

Перезапускаем апач:

# service apache2 restart

Готово.

Иногда бывает полезно

Находим имя файла - через последнее значение массива

$file_name = current(array_reverse(explode('/',dirname(__FILE__))));

Проверка на цифру в строке:

if(preg_match("/[0-9]+/", 'z1x')){
    echo 'в строке есть цифра';
}

Удаляем повторяющиеся тегов <br>:

preg_replace('/(?:<br[^>]*>\s*)+/i','<br>', $article);

Удаляем повторяющиеся пробелы:

preg_replace('/[\s]{2,}/', ' ', $article);

Убираем множество повторяющихся тегов B

$article = preg_replace('/(<b>){2,}/i', '<b>', $article);
$article = preg_replace('/(<\/b>){2,}/i', '</b>', $article);

еще про регулярки:

http://dreamhelg.ru/2010/02/15-regular-expression-for-web-developers/
http://php.spb.ru/php/regexp.html

Удачки!

Оцени публикацию:
  • 14,56
Оценили человек: 14
Теги : php, post max data, post maximum keys, post max array length, post 1000 limit

Похожие статьи:

Справочники и учебники:


Комментарии посетителей:
  • Не хватает функции по работе с mysql. А так норм.
    06 мая 2010, 08:27 коммент полезен : 0 # Popo
  • Почему нет ссылки на оригинал?(no)
    26 мая 2011, 17:54 коммент полезен : 0 # Костец
    • адрес сайта указан внизу шпаргалки, смотрим внимательно :!:
      26 мая 2011, 20:06 коммент полезен : 0 # Admin
Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » PHP »