Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: eregi обращает внимание на регистр букв
 
 автор: alex1   (30.11.2010 в 10:11)   письмо автору
 
 

На, одном компе работает как надо и не обращает, а на другом обращает. Что это может быть?

  Ответить  
 
 автор: .....   (30.11.2010 в 16:22)
 
   для: alex1   (30.11.2010 в 10:11)
 

разные локали ,пробуйте использовать setlocale() или составляйте регистронезависимым само выражение для ereg() , a лучше сразу привыкать к preg_match()

  Ответить  
 
 автор: kosta_in_net   (30.11.2010 в 18:18)   письмо автору
 
   для: alex1   (30.11.2010 в 10:11)
 

Проблема с регистрами решается с помощью setlocale.
А по поводу ereg и preg приведу ранее описанное мной:
Ради смеха сделал скрипт:
<? 
$i
=0
$data=file_get_contents('file.html'); 
$time_start microtime(true); 

while(
$i<100){ 
    
$i++; 
    
$data2=preg_replace("/<[\/\!]*?[^<>]*?>/si","",$data); 
//    $data2=strip_tags($data); 
//    $data2=ereg_replace("<[\/\!]*[^<>]*>","",$data); 

$time_end microtime(true); 
$time $time_end $time_start
echo 
'<p>'.$time.'</p>'
echo 
$data2
?> 



И пусканул его несколько раз, комментируя одни и разкомментируя другие строки, проверив, таким образом и strip_tags, и preg_replace, и ereg_replace.

Проверял на относительно большом и кривоватом HTML-коде. Вот результаты времени выполнения:

0.0312588214874 для strip_tags
0.0693130493164 для preg_replace
4.08115887642 для ereg_replace

Потом взял обезтеженный текст, сохранил в файл и протестил на нем. Получил такие результаты:

0.00200915336609 для preg_replace
0.00807499885559 для strip_tags
0.0092921257019 для ereg_replace

В обоих случаях наличие или отсутствие квантификатора i (регистронезависимый поиск) для preg_replace заметного влияния на скорость не оказал.

Выходит, что если наличие искомого в тексте весьма вероятно, strip_tags вдвое эффективней preg_replace, но если в тексте нет искомого, preg_replace вчетверо эффективней strip_tags.

Отсюда вывод: strip_tags или preg_replace хорошо применять в зависимости от ожидаемой вероятности появления искомого кода. А ereg_replace вообще лучше не применять.

  Ответить  
 
 автор: clock   (03.12.2010 в 12:18)   письмо автору
 
   для: kosta_in_net   (30.11.2010 в 18:18)
 

Не совсем в тему, но функции ereg* являются deprecated в php 5.3.x. (http://php.net/manual/en/migration53.deprecated.php)

и рекомендуется заменить их на соответствующие preg*

  Ответить  
 
 автор: kosta_in_net   (03.12.2010 в 19:39)   письмо автору
 
   для: clock   (03.12.2010 в 12:18)
 

Тем более ерег не стоит применять

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования