Показать сообщение отдельно

  #5  
Старый 08.08.2008, 13:22
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

Гуд. Но регулярка в цикле для каждого из 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 $pfile_put_contents($pstr_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)));
 
Ответить с цитированием