|
|
|
|
|
для: huligun
(12.10.2010 в 18:24)
| | а куда делись фигурные скобки после for ? | |
|
|
|
|
|
|
|
для: Саня
(12.10.2010 в 12:02)
| | Теоритически я все знаю :)
но вот примерчик как конкретно прервать цикл после первого нахождения 0 и его замены на 1 ?
пробовал ставить break но получал
Fatal error: Cannot break/continue 1 level | |
|
|
|
|
|
|
|
для: huligun
(12.10.2010 в 11:18)
| | > как обспечить наибольшую скорость доступа потоков к файлу
Открывать файл только когда появляется необходимость и сразу закрывать его по завершению работы с ним (важно проверять и применять блокировки в этот момент). Между открытием и закрытием не должны производиться другие операции, кроме чтения/записи в файл.
Ещё желательно чтобы каждый поток писал изменения в свой файл, а не в исходный. После завершения всех обработок нужно объединить результирующие файлы всех потоков в один и заменить им исходный.
> ...и вместе с тем защитить от дублирубщих обработок строк файла ?
Можно вести лог обработанных строк. А можно не вести и указать чтобы один поток обрабатывал чётные строки, другой нечётные.
Циклы прерываются оператором break. | |
|
|
|
|
|
|
| Вот такой скриптик запускается многопоточно, как обспечить наибольшую скорость доступа потоков к файлу и вместе с тем защитить от дублирубщих обработок строк файла ?
И еще как прервать цикл после первого нахождения 0 ?
<?php
$url_fl = "url.txt";
$urllist = file($url_fl);
for($i=0;$i<count($urllist);$i++)
$arr_line .= ("$urllist[$i]");
if(preg_match('[ 0]', $arr_line))
{
$url1 = str_replace("0", "1", $arr_line);
$fp = fopen($url_fl,"w");
fwrite($fp, $url1);
echo "$arr_line";
}
else
{
echo "DONE";
exit();
}
exit();
?> | |
|
|
|
|