 |
 |
Форум сетевых администраторов » Программирование » PHP » функция str_replace
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
Юзаю такую штуку:
PHP:
$template_text = str_replace( "<% SHOW MISS LIST %>" , $show->show_miss($show->how_show_miss='list') , $template_text);
Но если в $template_text нет строки <% SHOW MISS LIST %>, то как я понял функция $show->show_miss($show->how_show_miss='list') все равно отрабатывает... (или я не прав?) как сделать чтобы она отрабатывала только по наличию подстроки <% SHOW MISS LIST %>????
__________________
Админ - вождь Апачей...
Сообщение было отредактировано he][es 17-02-2004 в 21:35
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
17-02-2004 21:31 |
|
|
lol +
|
if (eregi("<% SHOW MISS LIST %>", $template_text)) {
$template_text =... |
[сооб. #61225]
18-02-2004 09:36 |
|
lol +


Зарегистрирован: May 2002
Место проживания: Latvia/D-pils
Публикаций: 451
Статус:  |
if (eregi("<% SHOW MISS LIST %>", $template_text)) {
$template_text = str_replace(..., ..., ...);
}
__________________
Национальность - русский, вероисповедание - программист.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
18-02-2004 09:36 |
|
|
Участник
|
| strpos быстрее будет, чем eregi. |
[сооб. #61400]
21-02-2004 14:15 |
|
|
Участник+
|
whisk точно?
Вот как то можно узнать какая... |
[сооб. #61401]
21-02-2004 14:48 |
|
|
фраерок на подсосе
|
| смотреть таймстамп перед выполнением функции... |
[сооб. #61498]
23-02-2004 17:31 |
|
фраерок на подсосе


Зарегистрирован: Aug 2002
Место проживания: Москва
Публикаций: 653
Статус:  |
смотреть таймстамп перед выполнением функции и после, можно в цикл засунуть функцию для большей достоверности.
(вообще все функции связанные с регулярными выражениями, всякие регеспы по умолчанию медленные функции)
__________________
RTFM (Уважаемые! Читайте документацию!)
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
23-02-2004 17:31 |
|
|
Участник+
|
| Orliha самому не очень охота этим заниматься,... |
[сооб. #61509]
23-02-2004 21:23 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
Orliha самому не очень охота этим заниматься, кто нить когда нить проводил "сводные тесты" (типа как видюхи на ixbt тестят )?
И что тогда лучше? (Или они просто медленные и др. вариантов нет?)
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
23-02-2004 21:23 |
|
|
Участник+
|
| Кто-то тут хотел узнать, какая ф-ция быстрее... |
[сооб. #61515]
23-02-2004 22:09 |
|
Участник+

Зарегистрирован: Apr 2003
Место проживания: 127.0.0.1
Публикаций: 334
Статус:  |
Кто-то тут хотел узнать, какая ф-ция быстрее ... eregi VS strpos ... 
Вот держите код (ниже).
Ð_езультаты (в секундах) на компе P4-2800 (циклы по 1млн. каждой ф-ции):
Время EREGI: 4.432705
Время STRPOS: 2.458606
получается strpos быстрее в данном случае, причем чем больше текст, в котором ищет ф-ция, тем сильнее тормозит EREGI, причем независимо в конце или в начале искомый текст ...
но опять-же у STRPOS нет такой гибкости в условии поиска, как в EREGI ... 
PHP:
<?PHP
$n = 1000000;
$template_text = 'Copyright © 1997 - 2003 by the PHP Documentation Group. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at » http://www.opencontent.org/openpub/).';
function time_diff($begin, $end, $precision = 3) {
list($a_micro, $a_int) = explode(' ', $begin);
list($b_micro, $b_int) = explode(' ', $end);
return round(abs(($b_int - $a_int) + ($b_micro - $a_micro)), $precision);
}
$test1_begin = microtime();
for ($i = 1; $i <= $n; $i++) {
$none = eregi("<% SHOW MISS LIST %>", $template_text);
}
$test1_end = microtime();
$test2_begin = microtime();
for ($i = 1; $i <= $n; $i++) {
$none = strpos($template_text, "<% SHOW MISS LIST %>");
}
$test2_end = microtime();
?>
Время <b>EREGI</b>: <?=time_diff($test1_begin, $test1_end, 6)?><br>
Время <b>STRPOS</b>: <?=time_diff($test2_begin, $test2_end, 6)?>
__________________
.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
23-02-2004 22:09 |
|
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
http://argon.com.ru/internet/webmastering/phpoptim почитай или
http://www.phpru.net/stroki.php
А вот такое будет работать?
PHP:
<?
error_reporting(0);
$link = 'http://www.top-top.ru/cgi-bin/tv.cgi?$QUERY_STRING';
$file = fopen($link, 'r');
$rf = fread($file, 100000);
$var = eregi( '
(.*)
', $rf, $title);
$var2 = eregi( '
(.*)
', $rf, $title2);
fclose($file);
$tv = $title[1];
$tv2 = $title2[1];
$tv = str_replace('/tvprog/pict/', 'http://www.top-top.ru/tvprog/pict/', $tv);
$tv = str_replace('name='chn'', 'name='chn[]'', $tv);
$tv2 = str_replace('/tvprog/pict/', 'http://www.top-top.ru/tvprog/pict/', $tv2);
?>
__________________
Международное брачное агенство в Сибири.
Сообщение было отредактировано Tagore 13-03-2004 в 11:47
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
13-03-2004 11:38 |
|
|


|
Формат времени GMT. Текущее время 14:45.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.65641809 seconds (99.02% PHP - 0.98% MySQL) with 23 queries.
|
 |