Проблема со скриптом, работающим на php.

И
На сайте с 17.04.2010
Offline
12
1035

Здравствуйте, уважаемые пользователи этого форума. Столкнулся с такой проблемой. Мне в скрипте нужно искать фразу в файле, пока не закончится текст этого файла. Я написал скрипт, но он сначала долго грузится, а потом пишет, что превышено ожидание в 30 сек (Fatal error: Maximum execution time of 30 seconds exceeded in C:\localhost\ on line 25).

Подскажите мне, что не так. Заранее благодарю. Вот часть скрипта.

$fpt = fopen('script.txt', 'r+');

................

$script = file_get_contents('script.txt');
$arr = array();
$i = 0;
while(!feof($fpt)){
if(ereg("Премиум городской", $script)){
$i++;
}
}
print $i;

....................

fclose($fpt);

Заранее благодарю!

RO
На сайте с 13.07.2009
Offline
88
#1

оно и неудивительно...

echo substr_count(file_get_contents('script.txt'),"Премиум городской");
И
На сайте с 17.04.2010
Offline
12
#2

Не-а, данный способ не работает. Пишет, что количество равно нуля. By the way, в файле script.txt у меня исходник html документа, может, поэтому? Провожу ещё раз, теперь скрипт целиком. Может в начала что-то не так...

<?php
$fp = fopen('http://shop.megafonnw.ru/spb/?pageid=5&subpageid=5&rnd=18', 'r');
$fpt = fopen('script.txt', 'r+');
$url = /*urlencode(*/'http://shop.megafonnw.ru/spb/?pageid=5&subpageid=5&rnd=18'/*)*/;
$cont = file_get_contents($url);
if($cont){
print $cont;
print "true";
fwrite($fpt, $cont);
}else{
print "false";
}
$script = file_get_contents('script.txt');
$i = substr_count($script,"Премиум городской");
print $i;
fclose($fpt);
fclose($fp);
?>
RO
На сайте с 13.07.2009
Offline
88
#3

так вы батенька граббер пишете :D не помогаю грабителям :D

удалите нахер свой говнокод, и не беритесь за это грязное дело! зы echo substr_count(file_get_contents("http://shop.megafonnw.ru/spb/?pageid=5&subpageid=5&rnd=18"),"Премиум городской"); показывает 5, так что хирург вам поможет.

sirota77
На сайте с 08.09.2008
Offline
161
#4
RedOK:
так вы батенька граббер пишете не помогаю грабителям

отличная позиция

sashka_
На сайте с 27.01.2010
Offline
103
#5

Код хороший получился :-D, для чего ты два раза считываешь страницу ,потом её записываешь , потом опять получаешь файл ??? вот так не легче будет ?



<?php
if($content= @file_get_contents("http://shop.megafonnw.ru/spb/?pageid=5&subpageid=5&rnd=18")) {
file_put_contents("script.txt",$content);
echo substr_count($content,"Премиум городской");
}
else echo " урл не считан";



?>

Знаю PHP, JS, jQuery. Помощь для вашего сайта. (/ru/forum/840509).
И
На сайте с 17.04.2010
Offline
12
#6

Это не граббер. Просто нужно отслеживать изменения на сайте.

L
На сайте с 07.12.2007
Offline
351
#7
while(!feof($fpt)){
if(ereg("Премиум городской", $script)){$i++;}
}

Цикл у Вас получился бесконечный. Вы же внутри него fread($fpt) не делаете - вот feof() и не возникает, скрипт обрывается по тайм-ауту 30 сек.

И
На сайте с 17.04.2010
Offline
12
#8

Всё никак не могу скрипт доделать! Подскажите, знающие php. Явно где-то нарушение логики, алгоритма.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<html>

<head>

<title></title>

</head>

<body>

<?php

define('URL', 'http://shop.megafonnw.ru/spb/?pageid=5&subpageid=5&rnd=18');

$fp = fopen('URL', 'r');

$fpt = fopen('script.txt', 'r+');

$fpn = fopen('new.txt', 'r+');

$cont = file_get_contents(URL);

$man = substr($cont, 14900, 7636);

$script = file_get_contents('script.txt');

$new = file_get_contents('new.txt');

if($script == "") {

fwrite($fpt, $man);

print "script zapisan!";

}else {

if($script == $new) {

$ret = fwrite($fpn, $man);

print $ret."<br/>";

$sost = "No changed!";

ftruncate($fpn, 0);

}else {

$ret = fwrite($fpn, $man);

print $ret."<br/>";

$sost = "Text has been changed!";

ftruncate($fpt, 0);

$ret2 = fwrite($fpt, $new);

print $ret2."<br/>";

print strlen($new);

ftruncate($fpn, 0);

}

print "script ne zapisan";

}

print "\n\t<br/>".$sost;

fclose($fpn);

fclose($fpt);

fclose($fp);

?>

</body>

</html>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий