<!-- contenet -->
Последняя публикация: 28.03.2011

Книга знаний PHP

Данны записи не претендуют быть учебным материалом.

 

Управление настройками в php коде

Вывод ошибок

// Узнаем включен ли вывод ошибок сейчас
$diplayErr = ini_get('display_errors');
 
// укажем что нужно выводить все ошибки и нотисы в строком режиме
error_reporting(E_ALL | E_STRICT);
 
// включим сам вывод ошибок
ini_set('display_errors', 1);
 
// пишем проверяемый код
 
// включим режим который был по умолчанию
ini_set('display_errors', $diplayErr);

увеличение времени выполнения скрипта

set_time_limit(60)
 // или вот так
 ini_set("max_execution_time", "60");

 

Перевод IP в число и обратно

Используем следующие фукции:

ip2long();

long2ip();

 

Отправка письма с помощью mail на php

/* укажем email на который будем отсылать письмо*/
$to= "33@mail.ru"; 
 
/* тема письма */
$subject = "Заявка на звонок - " . $phone . " - " . $name ."\r\n";
$subject = iconv('utf-8', 'cp1251', $subject ); 
 
/* сообщение для отправки в формате HTML */
$message = '<html><body>У Вас новая заявка на звонок!<br>'   . $name .' просит Вас перезвонить ему на номер: ' . $phone  . '</body></html>';
$message = iconv('utf-8', 'cp1251', $message ); 
 
/* Укажем необходимые заголовки */
$headers= "MIME-Version: 1.0\r\n";$headers .= "Content-type: text/html; charset=windows-1251\r\n";
$headers .= "From: POSTMAN m-alt.ru <robot@m-alt.ru>\r\n"; 
 
/* отправим письмо */
mail($to, $subject, $message, $headers);

 

Элементарные регулярки

Находим подстроки по шаблону |любой текст|

preg_match_all("#\|([^\|]+)\|#i",$str,$array_main);

Находим подстроки по шаблону [любой текст]

preg_match_all("#\[([^\]]+)\]#i",$str,$array_main);

Узнаем есть ли создержимое между тегами <table> ... </table>

preg_match_all("|]*>(.*)<\/table>|i",$good_char,$out);

Регулярка для разбития даты ‘2010-08-16 02:30:58’

preg_match('#^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$#', $row['page_date_publish'], $date);

Intval через регулярку

preg_replace('/[^0-9]/', '', 'Привет123!');
 // выведет 123

Выдернуть все символы кроме латинских, цифр и нижнего подчеркивания

preg_match_all("/[^A-Za-z0-9_]/", $input, $out);

Шпаргалка

 

Работа с датой

Дата сегодня

date('Y.m.d');

Дата сегодня минус 1 месяц

date('y.m.d',mktime(0, 0, 0, date('m') - 1, date('d'), date('y')));

Pазница между двумя датами (Библиотека программиста)

$current_date = mktime (0,0,0,date("m"), date("d"), date("Y")); //дата сегодня
$old_date = mktime (0,0,0,11,25,2004); //2004.11.25
$difference = ($current_date - $old_date); //разница в секундах
$difference_in_days = ($difference / 86400); //разница в днях

 

Заголовки

для 404 ошибки

header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found'); // отправим заголовки для 404 страницы

переадресация

header("location: /404.html"); // переадресовываем на страницу с 404 ошибкой

кодировка страницы

header("Content-type: text/html; charset=windows-1251"); // установим кодировку

заголовок для xml

header("Content-type: text/xml");

 

Провека на нулевой результат MySQL запроса

$sql = "SELECT email FROM base_emails WHERE email = 'mail@yandex.ru'";
$result = mysql_query($sql);
if ($array = mysql_fetch_assoc($result)) {
  // код если есть хоть одна запись
} else {
  // код когда результат нулевой
}

 

Call to undefined function imagecreatefromjpeg()

Необходимо проверить наличие вот такой записи в php.ini:

[PHP_GD2]extension=php_gd2.dll

а также наличие самого файла c:\Program Files\PHP\ext\php_gd2.dll

 

Последний сгенерированный id

$id = mysql_insert_id(); // возвращает ID, сгенерированный для столбца AUTO_INCREMENT предыдущим запросом INSERT