|
Если вы впервые на нашем форуме - ознакомьтесь с правилами
|
|
Этот вопрос уже стал вопросом из разряда FAQ :)
Вот ответ (из моей переписки):
...
Кстати...
Какая же ошибка в этом коде?:
<?
$string = "PHP is very cool";
if (eregi('php', $string)) {
echo "Yes!";
}
?>
Ошибка данного кода в том, что используется регулярное выражение для поиска простой строки. Вы абсолютно правы, код рабочий, но крайне неэффективный. Если вы используйте для этого, например, функцию strpos(), код будет работать раз в 30 быстрее. Вот даже из хелпа PHP указание (правда для другой функции регулярных выражений):
Tip: Do not use preg_match() if you only want to check if one string is contained in another string. Use strpos() or strstr() instead as they will be faster.
На это и расчет, что большинство script kiddy (наших доморощенных спецов по PHP) увидят вполне рабочий код, к тому же часто используемый (например, буквально повсеместно в phpNuke) и скажут: «Ошибки нет». А это не так, по этому поводу в книжке Сураски целая глава есть: «Оптимизация кода» - но кто читает какие-то книжки? Проще в форум написать фразу:
«Народ, киньте в меня скрыптом гостивухи на ПХП и Мускуле!»
...
В общем, вот мой совет: НЕ читайте советских газет (форумов Рунета) перед завтраком (перед экзаменом)
...
На экзамене такие вопросы - ЕСТЬ!
...
|
|
29 октября 2005, 07:54
|
|
Это сообщение было просмотрено: 3253 раз(а)
|
|