Masters of CGI.Perl
 Сайт клуба знатоков CGI.Perl 
FAQ · Статьи · Конференция · Ссылки · Скрипты

Часто задаваемые Вопросы.. F.A.Q.

Дайджест от 15.11.2000

Если Вы не нашли ответ на свой вопрос в этом дайджесте, то попробуйте найти его в основной базе:

Ключевые слова

Напоминаем, Вы можете получать FAQ на свой e-mail !!! Достаточно подписаться на нашу почтовую конференцию.
 

  Название : PHP new 

  1. Как осуществить контроль мертвых ссылок на странице?
  2. Как передать заархивировную страницу в броузер?
  3. Данные из формы приходят как _slashed_ (т.е. "\"="\\", и тд.) Как с этим бороться?
  4. Как привести переменную к определенному типу ?
  5. Как проверить принадлежность переменной к тому или иному типу ?
  6. Как узнать, установлено ли значение переменной или нет ?
  7. Как узнать тип переменной ?
  8. Как на PHP заменить подстроку в строке ?
  9. Существую ли регулярные выражения на PHP ?
  10. Мне нужно использовать интерфейс через сокеты. Как с ними работать на PHP ?
  11. Как можно отправить почту, используя PHP ?
  12. Как задать время исполнения скрипта ?
  13. Как изменить значение переменной среды ?
  14. Как узнать дату последней модификации текущей страницы ?
  15. Как получить владельца PHP скрипта ?
  16. Каким образом получить значение переменной среды ?
  17. Как установить фильтр для отображаемых ошибок PHP ? Например, игнорировать Warning.
  18. Как в обработчике событий послать сообщение об ошибке в Log файл ?
  19. Нужно узнать версию PHP, установленную в системе. Как это сделать ?
  20. Нужно перекодировать строку русских символов в несколько кодировок. Каким образом ?
  21. Как зашифровать строку символов, используя шифр DES (В частности для криптования пароля) ?
  22. Как повысить/понизить регистр букв в строке ?
  23. Есть ли аналог Перловской функции split в PHP3 ?
  24. Как склеить массив строк в одну строку ?
    следующие >>

 

Как осуществить контроль мертвых ссылок на странице?


Вот пример:
$url="www.php.net";
if(!fsockopen($url, 80, &$errno, &$errstr, 30) )
echo "<b>$url <font color=\"red\">down!!</font></b>\n";
else
echo("<a href=\"http://$url\">$url</a>");
Это собственно не совсем проверка доступности урла, скорее хоста в целом, но если эту тему развить ...

Источник: Конференция RU.PHP

Прислал: Ed V. Bartosh

Дата добавления: 5.10.2000 Прислать свои комментарии  Наверх 

Как передать заархивировную страницу в броузер?


Использовать zlib:
<?
if(strstr(getenv("HTTP_ACCEPT_ENCODING"),"gzip"))
{
$fp=fopen($name."my.html","r"); while ($buffer = fgets($fp, 4096)) $in.=$buffer; fclose($fp);
if(file_exists("tmp.gz")) unlink("tmp.gz");
$zfp=gzopen("tmp.gz","wb1");
gzwrite($zfp,$in);
gzclose($zfp);

$fp=fopen("tmp.gz","r"); while ($buffer = fread($fp, 4096)) $out.=$buffer; fclose($fp);
header("Content-Length: ".(filesize("tmp.gz")));
header("Content-Encoding: gzip");
echo $out;

}
else echo $in;
?>
Источник: Конференция RU.PHP

Прислал: Vladimir Maslov

Дата добавления: 5.10.2000 Прислать свои комментарии  Наверх 

Данные из формы приходят как _slashed_ (т.е. "\"="\\", и тд.) Как с этим бороться?


Функция stripslashes() убирает лишние слэши, а addslashes() - добавляет.
Также смотри magic_quotes_gpc в php.ini

Дата добавления: 5.10.2000 Прислать свои комментарии  Наверх 

Как привести переменную к определенному типу ?


Для приведения типа существует функция setype. Указываете имя переменной и тип, к которому ее нужно привести.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как проверить принадлежность переменной к тому или иному типу ?


Все функции проверки типа переменной выглядят следующим образом is_xxxxxx, где xxxxxx - название типа. Например, для проверки принадлежности переменной к типу integer есть функция is_integer.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как узнать, установлено ли значение переменной или нет ?


Функция isset возвращает "истину", если значение переменной установлено и "ложь" в противном случае.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как узнать тип переменной ?


Для получения типа переменной используется функция gettype. Вам возвращается строка названия типа переменной.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как на PHP заменить подстроку в строке ?


Используйте регулярные выражения. Пример:
$string = "This is a test";
echo ereg_replace( " is", " was", $string );
echo ereg_replace( "( )is", "\\1was", $string );
echo ereg_replace( "(( )is)", "\\2was", $string );

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Существую ли регулярные выражения на PHP ?


Конечно существуют. Вот пример, иллюстрирующий работу регулярных выражений в PHP:
if ( ereg( "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs ) ) {
echo "$regs[3].$regs[2].$regs[1]";
} else {
echo "Формат даты задан неправильно: $date";
}
В данном примерепроверяется соответствие даты $date и шаблона ГГГГ-ММ-ДД. И производиться распечатка в виде ДД.ММ.ГГГГ.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Мне нужно использовать интерфейс через сокеты. Как с ними работать на PHP ?


Принцип работы с сокетами тот же, что и в других языках. Для открытия сокета существует функция fsockopen. Она открывает соединение через сокеты через указанных порт и хост. Вот пример открытия и получения информации через сокет-соединение:
$fp = fsockopen("www.php.net", 80, &$errno, &$errstr);
if(!$fp) {
   echo "$errstr ($errno)<br>;\n";
} else {
   fputs($fp,"GET / HTTP/1.0\n\n");
   while(!feof($fp)) {
       echo fgets($fp,128);
   }
   fclose($fp);
}

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как можно отправить почту, используя PHP ?


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

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как задать время исполнения скрипта ?


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

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как изменить значение переменной среды ?


Это делается с помощью функции putenv.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как узнать дату последней модификации текущей страницы ?


Получить время модификации текущей страницы можно функцией getlastmod.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как получить владельца PHP скрипта ?


Функция get_current_user возвращает владельца данного скрипта.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Каким образом получить значение переменной среды ?


Воспользуйтесь getenv. В параметрах указывается имя переменной а возвращаемое значение - это значение переменной.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как установить фильтр для отображаемых ошибок PHP ? Например, игнорировать Warning.


В функции error_reporting устанавливается битовая маска ошибок: E_ERROR, E_WARNING, E_PARSE, E_NOTICE, E_CORE_ERROR и E_CORE_WARNING.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как в обработчике событий послать сообщение об ошибке в Log файл ?


Воспользуйтесь функцией error_log. С помощью нее можно посылать сообщение об ошибке в log файла, TCP порты или просто в файл.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Нужно узнать версию PHP, установленную в системе. Как это сделать ?


Всю информацию об установках PHP можно получить вызвав команду phpinfo. А функция phpversion возвращает номер версии PHP.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Нужно перекодировать строку русских символов в несколько кодировок. Каким образом ?


В этом случае удобно воспользоваться функцией convert_cyr_string. Она умеет переводить из/в следующие:k - koi8-r, w - windows-1251, i - iso8859-5, a - x-cp866, d - x-cp866, m - x-mac-cyrillic.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как зашифровать строку символов, используя шифр DES (В частности для криптования пароля) ?


Для этого есть функция crypt.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как повысить/понизить регистр букв в строке ?


В PHP3 есть для этого две функции: strtolower и strtoupper.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Есть ли аналог Перловской функции split в PHP3 ?


Есть аналогичная функция и в PHP3. У нее третий параметр - кол-во полей, на которые "бить" исходную строку. А еще есть функция explode. Полное сходство.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

Как склеить массив строк в одну строку ?


Это делает функция join. Указываете ей массив и символ-соединитель. А еще есть функция implode. Полная аналогия перловского join.

Дата добавления: 12.09.2000 Прислать свои комментарии  Наверх 

  следующие >>

Сайт клуба знатоков CGI.Perl - Masters of CGI.Perl
Designed by MoveR Studio © 2000  - | -  Вопросы? Предложения? пишите