Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: помогите исправить ошибку
при работе возникает PHP Notice: Undefined offset: 1 in /var/www/1.php on line 10
и данные верные выдает только за последний проход, а остальные все с нотисом.
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
не нашло на странице совпадений с маской, и $match пустой или не имеет первый елемент
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
illy
Отправлено: 11 Августа, 2011 - 11:50:48
Участник
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
разве file_get_contents можно применять к ссылке?
я прост сам не знаю
а вот здесь echo "$n $match[1]" если по регулярке не нашёл ничё, то при выводе будет писать ошибку.
OrmaJever в том то и дело я не знаю как правильно написать строку echo "$n $match[1]"; поскольку если просто echo $match; написать то скрипт вообще не работает, а так хоть 1 значение выдает.
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
<?php
$file = file('url.txt');
foreach($file as $n)
{
$data=file_get_contents("http://webcache.googleusercontent.com/search?q=cache:$n");
if(preg_match('/snapshot of the page as it appeared on (.*)? GMT/',$data,$match) or preg_match('/по состоянию на (.*)? GMT/',$data,$match)){
echo "$n $match[1]<br>";
}
}
?>
но если будет грузить больше 30 секунд, то остановится
----- Всё гениальное - просто
И ещё проще, если ты - индиго
xsh
Отправлено: 11 Августа, 2011 - 12:31:13
Новичок
Покинул форум
Сообщений всего: 55
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
illy ошибку не выдает, но показывает по прежнему только результат по последнему значению из url.txt
не остановится, я то с локала его запускаю. планирую туда прокси еще прикрутить, только пока не знаю как. как то через stream_context_create надо лист с проксями подцеплять.
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
<?php
$file = file('url.txt');
foreach($file as $n)
{
$data=file_get_contents("http://webcache.googleusercontent.com/search?q=cache:$n");
$data=preg_replace('/(.*)по состоянию на (.*)? GMT(.*)/','\2',$data);
$data=preg_replace('/(.*)snapshot of the page as it appeared on (.*)? GMT(.*)/','bzz\2nzz',$data);
preg_match('/bzz(.*)nzz/',$data,$m);
echo $n.$m;
}
?>
$m тут надо $m[0] или $m[1] не могу проверить так как гугл ограничил доступ
----- Всё гениальное - просто
И ещё проще, если ты - индиго
OrmaJever
Отправлено: 11 Августа, 2011 - 14:46:24
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
xsh просто на страницах нету такой маски - "snapshot of the page as it appeared on (.+?) GMT"
если всётаки так запланировано что может и не быть совпадений то нужно просто проверять переменую
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
xsh
Отправлено: 11 Августа, 2011 - 14:48:07
Новичок
Покинул форум
Сообщений всего: 55
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
illy если $m; то
yandex.ru Array
bytes.com Array
yahoo.com Array
если $m[0] то у всех url выдает PHP Notice: Undefined offset: 0 in /var/www/1.php on line 9
а у последнего yahoo.combzz5 Aug 2011 13:29:15nzz
явно не то..
если $m[1] то у всех url выдает PHP Notice: Undefined offset: 1 in /var/www/1.php on line 9
а у последнего yahoo.com5 Aug 2011 13:29:15
if(preg_match('/snapshot of the page as it appeared on (.*)? GMT/',$data,$match) or preg_match('/по состоянию на (.*)? GMT/',$data,$match)){
то исключаются ситуации несовпадения, и при этом скрипт не работает со списком url.txt а выдает значение только последнего. при этом если проверить те значения что не выводятся этим скриптом просто подставляя напрямую:
то информация выдается, проблема в подключении самого файла url.txt к скрипту, ошибка где то там, маска же работает даже если текст на русском как я понял, поскольку если в браузере вбить http://webcache[dot]googleuserconten[dot][dot][dot]=cache:bytes[dot]com то парсенный участок выдается на русском. (Добавление)
если вставить в скрипт:
то значения выдаются только по последнему, что в принципе уже и очевидно (по остальным "не найдено"), я просто не понимаю почему скрипт корректно обрабатывает только последнюю строчку из файла url.txt
if(preg_match('/snapshot of the page as it appeared on (.*)? GMT/',$data,$match) or preg_match('/по состоянию на (.*)? GMT/',$data,$match)){
print("$n$match[1]");
}
}
если так то работает, при этом если проверять отдельно поступают ли данные из файла, то выходит что поступают.пришел к выводу что функция file() как то не дружит с file_get_contents()
подскажите пожалуйста чем можно заменить тут функцию file() чтобы забирать массив из файла?
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
$f=file('url.txt'');
for($c=0;$c!=sizeof($f);$c++){
$d=file_get_contents("http://webcache.googleusercontent.com/search?q=cache:$f[$c]");
if(preg_match('/snapshot of the page as it appeared on (.*)? GMT/',$d,$m) or preg_match('/по состоянию на (.*)? GMT/',$d,$m)){
print("$f[$c] $m[1]");
}
}
----- Всё гениальное - просто
И ещё проще, если ты - индиго
xsh
Отправлено: 12 Августа, 2011 - 10:35:59
Новичок
Покинул форум
Сообщений всего: 55
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
illy неа, опять только 1 результат, нужно вообще не использовать функцию file() или придумать какое то другое условие, чтобы выдрать дату...
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.