- RU.PHP ------------------------------------------------------------- RU.PHP -
Msg : #1090 [1443]
От : FAQ AutoPoster 2:5012/8.13 27 июня 03, 16:29
Кому : All 30 июня 03, 22:21
Тема : FAQ [2/5]
-------------------------------------------------------------------------------
>>1.10. Можно ли использовать PHP как замену Perl'а и других интерпретируемых
>>языков при создании shell-скриптов?
Можно. И нужно W;) Сокращенный перевод официальной документации:
Выполнение PHP-скриптов из командной строки обычно применяется в тех случаях,
когда вам нужно протестировать настройку PHP или же если вы собираетесь
использовать возможности PHP в других целях, нежели создание веб-скриптов. ...
Обратите внимание, что вы
php -q test.php > test.html
Вы можете выполнять PHP-скрипты в командной строке только в том случае, если
ваш PHP собран как самостоятельное приложение (stand-alone executable). ...
PHP в качестве самостоятельного приложения может быть использован для запуска
PHP-скриптов в абсолютной независимости от web-сервера. Если вы работаете в
*nix-системе, вам нужно будет добавить специальную строку в начало каждого
скрипта (чтобы система смо
Hа win-платформах вы можете ассоциировать .php-файлы с приложением php.exe с
помощью двойного щелчка кнопкой мыши в Проводнике (Explorer) или же создавать
пакетные (.bat) файлы для выполнения PHP-скриптов. ...
Пример (script.php):
#!/usr/bin/php -q
# -q используется для запрещения вывода HTTP-заголовков
if ($argc != 2 || in_array ($argv[1], array ('--help', '-help', '-h'))) {
echo "Запуск: ./script.php <аргумент>|<--help|-help|-h>\n";
} else {
echo $argv[1];
}
?>
В вышеприведенный скрипт была добавлена специальная первая строка, которая
указывает на то, что этот файл должен быть запущен с помощью PHP без вывода
HTTP-заголовков. При создании скриптов, предназначаемых для выполнения в
командной строке, вы можете исп
Пример пакетного (.bat) файла для запуска скрипта на win-платформах
(script.bat):
@c:\php\php.exe -q script.php %1 %2 %3 %4
> ivan kovalenko, 2:5057/53
>>1.11. Пpи pаботе c сессиями, вываливаетcя cообщение в бpаузеp: Warning:
>>open(/tmp\sess_???, O_RDWR) failed: m (2) in script.php on line X?
В php.ini надо прописать путь до места, куда будут сохраняться сессии, по
умолчанию /tmp, что годится для юникса:
session.save_path = c:\tmp
> trent
>>1.12. Как сделать, что бы вывод из моего скрипта сразу показывался у
>>пользователя в браузере?
Использовать функцию flush(). В связи с особенностями вывода некоторых
браузеров, в том числе IE и Opera 6 рекомендуется послать 256 байт в начале
страницы, вот тестовый скрипт:
echo str_repeat(" ", 256);
//это аналог for($i=0;$i<256;$i++){echo " ";}
for ($i = 0; $i < 10; $i++)
{
print "i: $i\n";
flush();
sleep(5);
} ?>
Результаты работы: Столбик из значений i, появляющихся через 5 секунд.
> Andy Ice, 2:5012/8.13
>> 1.13. Как измерить время с точностью до микpосекунды?
Вот тебе классик для измерения времени...
class Timer {
var $start; // start time in usec
var $stop; // stop time in usec
function start() {
$t = gettimeofday();
$this->start = $t[sec] * 1000000.0 + $t[usec];
}
function stop() {
$t = gettimeofday();
$this->stop = $t[sec] * 1000000.0 + $t[usec];
}
function elapsed() {
return ($this->stop - $this->start) / 1000000.0;
}
}; ?>
юзать будешь так:
$t = new Timer(); ?>
в нужном месте делаешь
$t->start(); ?>
там, где надо закончить отсчет так:
$t->stop(); ?>
ну и в где надо
print $t->elapsed(); ?>
> Andrey N. Demushkin, drew(a)adx.cjb.net
>>1.14. Как передать параметры из формы с множественным значением (select
>>multiple, значение checkbox'ов и т.д)?
Для checkbox'a:
для multiple:
данные из формы придут, как массив $id со значениями value.
> trent
>>1.15. Как бы мне получить вчеpашнюю дату?
print date("d/m/Y",
mktime(0,0,0,intval(date('n')),intval(date('j'))-1,intval(date('Y'))));
> Kirill Kustov <2:5045/67>
echo date("d/m/Y",time()-86400); ?>
> Dmitrik Kolesnikov, 2:463/3141.95
strtotime ("-1 day"); ?>
> Pavel P, vprin@indiainfo.com
>>1.16. Расскажите, чем отличается вызов функции с собакой от вызова без
>>собаки?
Если функция вызывается с собакой, то сообщение об ошибке подавляется.
> Пальчуковский Евгений Викторович
>>1.17. Функции strtoupper() strtolower() не работают или работают неправильно.
>>
Попробуйте использовать такую фукцию:
strtoupper()
strtolower()
> trent
>>1.18. Какие специфичные функции не работают под IIS?
Привожу выбранные из маны, такой какой она была на момент 4.1.0
По смыслу это список функций которыми не смогут пользоваться
в связке IIS+PHP.
apache-specific:
-------------------------------------
apache_lookup_uri()
apache_note()
ascii2ebcdic()
ebcdic2ascii()
getallheaders()
virtual()
apache_child_terminate()
apache_setenv()
not implemented on Windows platforms:
-------------------------------------
acosh()
asinh()
atanh()
chgrp()
chmod()
chown()
fileinode()
fileowner()
getmyinode()
is_link()
link()
linkinfo()
readlink()
sem_get()
sem_acquire()
sem_release()
shm_attach()
shm_detach()
shm_remove()
shm_put_var()
shm_get_var()
shm_remove_var()
symlink()
umask()
usleep()
> SeazoN aka Sergey Sazonenkov, 2:469/142.999
>>1.19. Имеется форма, где вносится текст с переносом строк, при выводе
>>текста на страницу строки не переносятся, что делать?
Дело в том, что при выводе страницы в общем случае игнорируются переносы
строк, что бы начать с новой строки нужно вставить тег или пару
по необходимости. Смотри функцию nl2br.
> Andy Ice, 2:5012/8.13
>>1.20. Как передать параметры скрипту, если он выполняется из командной
>>строки?
php.exe file.php "&pt=1"
> Alexey Kolesnichenko
>>1.21. Как выполнять свой скрипт с некоторой периодичностью (например,
>>каждый час)?
Выполнять действия с какой-то периодичность может только программа которая
работает все время. Обычно это операционка. Твой РHР-скрипт запускается
тогда, когда обращаются к web-серверу (Apache) и живет обычно не больше
чем time_limit. Как ты себе представляешь, что бы он делал что-то с
периодичностью раз в час?
Если уж сильно надо на РHР - запускай php.exe script.php -q >> out.log
из at на HТ или из cron'а в юниксах.
> Alexey Sviridov, 2:5002/27.800
-----------------------------------------------------------------------------
>>>2. Установка
-----------------------------------------------------------------------------
>>2.1. Установка PHP в системе Windows.
1. Б броузере набрать http://www.php.net и кликнуть на ссылку Download
2. Перепишите на свой комп файл PHP, подходящий для системы Windows (php3,
php4 или и тот, и другой), щелкнув на нем. Hа компах с системой Windows
легко устанавливаются и PHP3, и PHP4, и даже обе эти версии.
3. Извлеките все файлы из архива во временную папку.
4. Скопируйте все файлы .dll из временной папки, в которую вы поместили файлы
PHP, в папку общесистемных файлов Windows. В системе Windows 95/98 - это
папка *:\Windows\System. В Windows NT - *:\Winnt\System.
5. Переименуйте файл php3.ini-dist (или php.ini-dist, если вы используете
PHP4) во временном каталоге в php.ini и скопируйте его в каталог Windows
(*:\Windows или *:\Winnt, в зависимости от версии системы).
6. Создайте папку на диске C: с именем php3 или php4 в зависимости от версии.
7. Скопируйте файл php.exe в созданную папку php.
8. Откройте файл httpd.conf, который находится в каталоге
*:\Program Files\Apache Group\Apache\conf.Для редактирование этого файла
можно использовать любой текстовый редактор, но обязательно сохраните
данный файл в виде простого текста, а не в формате .doc или в другом.
9. Добавьте следующие строки в конец файла httpd.conf, если вы используете
PHP4:
ScriptAlias /php4/ "C:/php4/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php4/php.exe"
10. Добавьте следующие строки в конец файла httpd.conf, если вы используете
PHP3:
ScriptAlias /php3/ "C:/php3/"
AddType application/x-httpd-php3 .php3
Action application/x-httpd-php3 "/php4/php3.exe"
11. Если вы устанавливаете только PHP4, добавьте так же следующую строку
AddType application/x-httpd-php .php3
12. Сохраните файл.
13. Перезапустите Web-сервер Apache, щелкнув на соответствующих пиктограммах
его папки. В результате Apache еще раз прочитае файл httpd.conf и
обнаружит, что добавлены функциональные средства PHP.
14. Создайте в папке *:\Program Files\Apache Group\Apache\htdocs сценарий
PHP, состоящий из одной строки. Для его написания можно использовать
любой текстовый редактор. Помните, что данный сценарий должен иметь
расширение .php. Присвойте файлу сценария имя info.php. Вот эта строка:
phpinfo(); ?>
15. Откройте броузер и направьте его по адресу http://localhost/info.php
Должна появиться страница PHP.
Помните, что реализация сценария на локальном компьютере зависит от двух
условий: во-первых, надо, чтобы работал Apache, и во-вторых, файл сценария
должен находиться в подпапке htdocs каталога, в котором установлен Apache.
Для вызова сценария и его последующего выполнения достаточно направить
броузер по адресу http://localhost/my_php_script.php
> Dmitry Eroshin, 2:5037/31.13
--- GMT v1.04beta5
* Origin: Two Beer Or Not Two Beer? (2:5012/8.13)
При переходе по баннеру - скидка 25% на первый месяц обслуживания! При переходе по баннеру - скидка 25% на первый месяц обслуживания!