PHP
Полезные сниппеты PHP кода, собранные в одном месте.
Просто записать текущую дату и время в файл:
$text = date("Y-m-d H:i:s");
$text .= "<br>";
$file = fopen ("test.txt", "a+"); //открываем для дозаписи файл registation.txt, лежаший в одной папке с текущей страницей
fwrite ($file,$text); // пишем в файл
fclose ($file);
?>
Определить IP-адрес клиента и отправить его на e-mail:
echo "твой IP:<br>";
echo $REMOTE_ADDR;
mail("web@finar.ru", "hacker's IP", "$REMOTE_ADDR");
echo "<br>успешно отправлен мне на почту. Спасибо!";
?>
Получить переменные окружения:
//системный скрипт: выводит все доступные переменные окружения
while (list($key, $val) = each($_SERVER)) {
echo "$key = $val\n<br>";
}
?>
Функция strptime
Вопрос:
Друзья, как думаете, вот такой php-код:
$fieldForm = "2013-06-29";
$aResult = strptime($fieldForm, $TimeFmt); // преобразуем из человеческого в Unix-time
$fieldForm = mktime($aResult['tm_hour'], $aResult['tm_min'], $aResult['tm_sec'], $aResult['tm_mon'] + 1, $aResult['tm_mday'], $aResult['tm_year'] + 1900) . "";
на XAMPP и на nic.ru генерит текущее время в Unix формате: примерно вот такое число 1372515661.
А на нашей VPS он генерит вот такое число -2209084200, т.е. 31 декабря 1899 года.
Ответ:
Функция strptime:
В случае нашей VPS не обрабатывается входное время, если в нем НЕ переданы часы и минуты.
Особенности работы вложенных фукнций
$a = '1111';
one();
function one(){
function two(){ // this function MUST go before it's call
global $a;
$a = "test";
}
two();
$a = "2222";
}
echo $a;
?>
Что содержится в $a? Правильный ответ -- "test". Хотя эта переменная определена в функции two() как Глобальная, это определение «перескочит» область видимости «родительской» функции.
И ещё одна любопытная особенность -- функции, вложенные в функции, должны быть определены перед своим первым вызовом. Это, очевидно, особенность PHP-парсера.