
08.08.2008, 13:22
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
Гуд. Но регулярка в цикле для каждого из 124 html-файлов (что я делал в реале) - не лучший метод.
Более правильно всё-таки понять, почему str_ireplace не реагировала на регистр.
Потом проверку на индекс не надо - он не лежит в папке files и не попадает под маску glob
И glob я считаю можно вставить в foreach. Он не выполняется при каждой итерации, что подтверждает следующий тестовый скрипт:
PHP код:
<?php
function iglob(){
global $cnt;
$arr = array('file1','file2','file3');
$cnt++;
return $arr;
}
$test = iglob();
foreach ($test as $r){
echo $r.'<br />';
}
echo '<br />cnt is '.$cnt.'<br />';
$cnt = 0;
foreach (iglob() as $r){
echo $r.'<br />';
}
echo '<br />cnt is '.$cnt.'<br />';
Добавим до кучи короткий тег (<?)
Итого мы имеем:
PHP код:
<? foreach(glob('files/*') as $p) file_put_contents($p, str_ireplace('Альтеа', 'Алтеа', file_get_contents($p)));
Итого, NOmeR1, ты предложил лишь фикс проблемы, являющийся неоптимизированной заплаткой.
Полная минификация:
скрипт для замены подстрок во всех указанных файлах.
укладываемся в 107 байт, если учесть что исходная подстрока = 'текст1', а заменяющая - 'текст2'
PHP код:
<?foreach(glob('files/*')as$p)file_put_contents($p,str_ireplace('текст1','текст2',file_get_contents($p)));
|
|
|