Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Извлечь ссылки с чужой страницы
 
 автор: blackcement   (12.04.2009 в 13:28)   письмо автору
 
 

Как извлечь все ссылки с ХТМЛ документа чужого сайта и сохранить их в тхт файле на моём сервере или хотябы весь код страницы? Возможно-ли это? (с помощью ПХП скрипта я имею ввиду)

  Ответить  
 
 автор: blackcement   (12.04.2009 в 14:10)   письмо автору
 
   для: blackcement   (12.04.2009 в 13:28)
 

Предлагали такой способ
<? 
  $lines 
file("http://www.ya.ru/");  // читаем хтмл по url 
  
$fp fopen("ya_ru_html.txt""w"); //открываем файл для записи 
  
fputs($fp$lines); // пишем в него 
  
fclose($fp); // закрываем 
?>


Но в тхт файле сохраняется только стово Array

  Ответить  
 
 автор: blackcement   (12.04.2009 в 14:36)   письмо автору
 
   для: blackcement   (12.04.2009 в 14:10)
 

Всем - всем спасибо! Сам нашёл ошибку.
<? 
$search_url
="http://www.ya.ru/index.html";
 
$lines file_get_contents($search_url) ;
 
$fp fopen("ya_ru_html.txt""w"); 
 
fputs($fp$lines); 
 
fclose($fp); 
?>

  Ответить  
 
 автор: nikita2206   (12.04.2009 в 15:16)   письмо автору
 
   для: blackcement   (12.04.2009 в 14:36)
 

<?
$search_url
="http://www.ya.ru/index.html";
$lines file_get_contents($search_url);
preg_match_all('|<a.+?>.+?</a>|s'$lines$urls);
$links '';
for(
$i 0$i count($urls[0]); $i++){
  
$links .= $urls[0][$i];
}
$fp fopen("ya_ru_html.txt""w");
fputs($fp$links);
fclose($fp);
?>


-это если вы хотите ссылки ложить...

  Ответить  
 
 автор: blackcement   (12.04.2009 в 16:44)   письмо автору
 
   для: nikita2206   (12.04.2009 в 15:16)
 

Я довёл до такого

<? 
$search_url
="http://www.ya.ru/index.html"
$lines file_get_contents($search_url); 
preg_match_all('|href=.+?>|s'$lines$urls); 
$links ''
for(
$i 0$i count($urls[0]); $i++)

$links .= $urls[0][$i]; 
$links .= "\n"

$fp fopen("ya_ru_html.txt""w"); 
fputs($fp$links); 
fclose($fp); 
?>


мне просто одни ссылки нужны, но всё= сле ва и справа остаётся href= и >
Может быть теперь тупо удалить первые 5 символов из строки и последний один?
Или воспользоваться лучше функцией strip_tags удаления тегов

  Ответить  
 
 автор: blackcement   (12.04.2009 в 18:04)   письмо автору
 
   для: blackcement   (12.04.2009 в 16:44)
 

Вот как мне надо было

<? 
$search_url
="http://www.ya.ru/index.html"
$lines file_get_contents($search_url); 
preg_match_all('|href=.+?>|s'$lines$urls); 
$links ''
for(
$i 4$i count($urls[0]); $i++)

$link$urls[0][$i]; 
$link str_replace "href=""",$link);
$link str_replace ">""",$link);
$link str_replace " target=_blank""",$link);
$link str_replace '"'"",$link);
$links .= $link
$links .= "\n"

$fp fopen("ya_ru_html.txt""w"); 
fputs($fp$links); 
fclose($fp); 
?>

  Ответить  
 
 автор: nikita2206   (12.04.2009 в 18:08)   письмо автору
 
   для: blackcement   (12.04.2009 в 18:04)
 

чёж вы так заморачиваетесь, вот:
<?
$search_url
="http://www.ya.ru/index.html"
$lines file_get_contents($search_url); 
preg_match_all('/<a.*?href=("|\')(.+?)("|\').*?>.+?<\/a>/s'$lines$urls); 
$links ''
for(
$i 0$i count($urls[0]); $i++){ 
  
$links .= $urls[2][$i]."\r\n"

$fp fopen("ya_ru_html.txt""w"); 
fputs($fp$links); 
fclose($fp);

  Ответить  
 
 автор: blackcement   (12.04.2009 в 19:23)   письмо автору
 
   для: nikita2206   (12.04.2009 в 18:08)
 

Почему-то ничего не сохраняет, но ошибок не выдаёт...

  Ответить  
 
 автор: nikita2206   (12.04.2009 в 20:10)   письмо автору
 
   для: blackcement   (12.04.2009 в 19:23)
 

у меня работает....
<? 
$search_url
="http://www.ya.ru/index.html";  
$lines file_get_contents($search_url);  
preg_match_all('/<a.*?href=("|\')(.+?)("|\').*?>.+?<\/a>/s'$lines$urls);  
$links '';  
for(
$i 0$i count($urls[0]); $i++){  
  echo 
$urls[2][$i]."<br />\r\n";  

вот так что пишет?

  Ответить  
 
 автор: blackcement   (12.04.2009 в 20:56)   письмо автору
 
   для: nikita2206   (12.04.2009 в 20:10)
 

Так, всё путём. Выводит что надо!

  Ответить  
 
 автор: serjinio   (13.04.2009 в 08:24)   письмо автору
 
   для: blackcement   (12.04.2009 в 20:56)
 

<?
$search_url
="http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=64268&page=1"
$lines file_get_contents($search_url);  
preg_match_all('/<a.*?href=("|\')(.+?)("|\').*?>.+?<\/a>/s'$lines$urls);  
$r array_unique ($urls[2]);// Выбираем уникальные


echo '<pre>';
print_r ($r);
echo '</pre>';

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования