X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Ошибка в парсинге Url
FjuZ
FjuZ
Topic Starter сообщение 20.11.2009, 1:33; Ответить: FjuZ
Сообщение #1


Я в недоумении ph34r.gif
Пишу скрипт, который выводит все ссылки со страниц, которые указаны в текстовом файле т.е.
<?php
$fh = fopen("category.txt", "r") or die ("Загрузите в файл category.txt список категорий");
while(!feof($fh))
{
    $line = fgets($fh);
    $array[] = $line;
}
$c=count($array);
for ($x=0; $x<$c; $x++) {
$body = file_get_contents($array[$x]);
preg_match_all('#(?:href\s*=\s*["|\'](?:http://)+(?:www.)?)([^\'"]*)?(?:["|\'])#six', $body, ч, PREG_SET_ORDER);
print_r($out);
}
?>

в итоге-выводит ссылки только с одной страницы. В чем дело? Где я допустил ошибку?

Сообщение отредактировал FjuZ - 20.11.2009, 1:33


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Lordie
Lordie
сообщение 20.11.2009, 1:37; Ответить: Lordie
Сообщение #2


FjuZ, что за мазохизм?.. file() читаем все в массив, а дальше циклом..


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FjuZ
FjuZ
Topic Starter сообщение 20.11.2009, 1:46; Ответить: FjuZ
Сообщение #3


Lordie, так?
<?php
$array = file ('category.txt');
$c=count($array);
for ($x=0; $x<$c; $x++) {
    $url = $array[$x];
$body = file_get_contents($url);
preg_match_all('#(?:href\s*=\s*["|\'](?:http://)+(?:www.)?)([^\'"]*)?(?:["|\'])#six', $body, $out, PREG_SET_ORDER);
print_r($out);
}
?>

результат не изменился


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LaeX
LaeX
сообщение 20.11.2009, 2:40; Ответить: LaeX
Сообщение #4


Функция file():
возвращает содержимое прочитанного файла в виде массива. Каждый элемент возвращенного массива содержит соответствующую строку с символами конца строки. В случае ошибки, функция file() возвращает FALSE.

Из-за этого по-моему и брались ссылки только из последней страницы в файле category.txt. Я использовал Simple HTML DOM для поиска ссылок на страницах и убирал символы конца строки.
<?
include('simple_html_dom.php');
$array = file('category.txt');

foreach($array as $url) {
    $new_url = str_replace("\r\n","",$url);
    $html = file_get_html($new_url);
    foreach($html->find('a') as $a_el) {echo $a_el->href."<br>\n";}
    
    $html->clear();
    unset($html);
}
?>

P.S. качнуть Simple HTML DOM можно http://sourceforge.net/projects/simplehtmldom/

Сообщение отредактировал LaeX - 20.11.2009, 2:45


--------------------
ICQpix — лучшие информеры ICQ статуса
Ѡ VDS за $2.99 (реф.) → 512/1024MB RAM, 50 GB HDD, полноценный SWAP
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FjuZ
FjuZ
Topic Starter сообщение 20.11.2009, 5:46; Ответить: FjuZ
Сообщение #5


LaeX, я ваш код не весь понимаю smile.gif мне лучше уже по моему способу выяснить ошибку, уже и так пробовал и сяк, фиг там.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
RedHead
RedHead
сообщение 20.11.2009, 13:06; Ответить: RedHead
Сообщение #6


несовсем понятно что требуется от скрипта. Что на входе, что на выходе и т.д
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FjuZ
FjuZ
Topic Starter сообщение 20.11.2009, 20:05; Ответить: FjuZ
Сообщение #7


В файле domains.txt содержатся два сайта с которых скрипт должен показать все внешние ссылки


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ghost Bear
Ghost Bear
сообщение 22.11.2009, 0:13; Ответить: Ghost Bear
Сообщение #8


Почему-то мне кажется, что print_r($out); вы добавили внутрь цикла только сейчас, а у себя делали его после цикла, благодаря чему выводился $out только с последнего preg_match_all, ибо каждый цикл, новый $out заменял собой старый.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FjuZ
FjuZ
Topic Starter сообщение 25.11.2009, 0:19; Ответить: FjuZ
Сообщение #9


Ghost Bear, нет, всё именно так. можете сами запустить скрипт у себя, посмотрите.
тема актуальна как никогда! срочно понадобился этот скрипт. помогите пожайлуста, отблагодарю чем смогу smile.gif


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
seotouch
seotouch
сообщение 25.11.2009, 0:27; Ответить: seotouch
Сообщение #10


(FjuZ @ 24.11.2009, 23:19) *
Ghost Bear, нет, всё именно так. можете сами запустить скрипт у себя, посмотрите.
тема актуальна как никогда! срочно понадобился этот скрипт. помогите пожайлуста, отблагодарю чем смогу smile.gif

Хм, а скиньте кусочек файлика, из которого берется текст


--------------------
Навсегда ушел
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Куплю "вечные URL" с ваших сайтов с тематикой - Пластиковые Окна!
5 regem 8370 15.3.2020, 19:46
автор: Narsus797
Открытая тема (нет новых ответов) Куплю места для размещения TXT+URL Строительная тематика.
7 regem 7596 28.3.2019, 18:31
автор: regem
Открытая тема (нет новых ответов) Каталог открывается как ошибка 404 в hostcms
0 cheshire 3254 2.7.2018, 11:09
автор: cheshire
Открытая тема (нет новых ответов) Куплю места для размещения TXT+URL Кафе, Ресторан, Банкетные тематики.
0 regem 8336 1.3.2017, 3:20
автор: regem
Открытая тема (нет новых ответов) убрать GET запрос с URL
Сделать ЧПУ ссылок
18 WoWeb 9851 28.10.2016, 17:18
автор: WoWeb


 



RSS Текстовая версия Сейчас: 29.3.2024, 19:53
Дизайн