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.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
ykiigor
Отправлено: 29 Сентября, 2008 - 16:17:17
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




Мне нужно 2 скрипта
1й : поиск всех УРЛ на странице (сайте, переменной) и запись в файл (массив)
2й : выполнение функции (любой) для каждого УРЛ из этого файла (массива)
 
 Top
Champion Супермодератор
Отправлено: 29 Сентября, 2008 - 16:27:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




все урл на странице есть в массиве document.links
запись в файл - это не сложно
выполнение функции для этого массива: функция($массив)
 
 Top
ykiigor
Отправлено: 29 Сентября, 2008 - 16:31:25
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




Ну это я знаю.
Мне нужно чтоб искались УРЛ из функции и помещать в массив. Как это сделать?
 
 Top
Champion Супермодератор
Отправлено: 29 Сентября, 2008 - 16:34:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




зачем их искать - они и так в массиве!
 
 Top
Keda
Отправлено: 29 Сентября, 2008 - 17:02:14
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Сент. 2008  
Откуда: Kyiv, Ukraine


Помог: 0 раз(а)




Если нужно открыть удаленную страничку и выдрать из нее все УРЛ, то будет что-то вроде такого:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $fp = fsockopen("yandex.ru", 80);
  4. fputs ($fp, "GET / HTTP/1.0\r\nHost: example.com\r\n\r\n");
  5. while (!feof($fp))
  6. {
  7.         $str = fgets($fp, 1024);
  8.         preg_match_all("/http:\/\/[aA-zZ0-9\.-]+/", $str, $m);
  9.         foreach ($m[0] as $link)
  10.                 if ($link) $links[] = $link;
  11. }
  12. ?>
  13.  
 
 Top
ykiigor
Отправлено: 01 Октября, 2008 - 21:33:32
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




Спасибо!

Еще вопрос: как избавиться от ошибки cannot redeclare function?
 
 Top
Champion Супермодератор
Отправлено: 01 Октября, 2008 - 21:42:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




не определяйте уже определенную функцию)
 
 Top
ykiigor
Отправлено: 01 Октября, 2008 - 22:03:38
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




Да, я это понял, но если это нужно? (функция выполняется несколько раз для разных значений переменной)
 
 Top
Champion Супермодератор
Отправлено: 02 Октября, 2008 - 08:43:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Это не бывает нужно в php. Чтоб выполнить ее для разных значений переменных, ее надо несколько раз вызвать, а не несколько раз определить. Приведите код, укажите на какую функцию ругается
 
 Top
ykiigor
Отправлено: 02 Октября, 2008 - 14:41:07
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. function get_content ($scheme, $host, $path, $query, $others=''){
  3.  
  4.  if (function_exists('curl_init')) {
  5.  
  6.                 $ch = curl_init();
  7.                 curl_setopt($ch, CURLOPT_URL, $scheme."://".$host.$path."?".$query);
  8.                 curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  9.                 curl_setopt($ch, CURLOPT_REFERER, $scheme."://".$host.$path.$query);
  10.                 if ($others != '') curl_setopt($ch, CURLOPT_COOKIE, $others);
  11.                 @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  12.                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  13.                 $data = curl_exec($ch);
  14.                 curl_close($ch);
  15.                 if ($data) return $data; else return false;
  16.  }
  17.  else
  18.  {
  19.    if (!empty($others)) $others = "Cookie: ".$others."\r\n";
  20.    else $others = "";
  21.  
  22.    $post="GET $path HTTP/1.1\r\nHost: $host\r\nContent-type: application/x-www-form-urlencoded\r\n{$others}User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\nContent-length: ".strlen($query)."\r\nConnection: close\r\n\r\n$query";
  23.  
  24.    $h=@fsockopen($host,80, $errno, $errstr, 30);
  25.  
  26.         if (!$h) {
  27.            return false;
  28.         }
  29.     else
  30.     {
  31.          fwrite($h,$post);
  32.    
  33.          for($a=0,$r='';!$a;){
  34.             $b=fread($h,8192);
  35.             $r.=$b;
  36.             $a=(($b=='')?1:0);
  37.          }
  38.  
  39.          fclose($h);
  40.     }
  41.  
  42.   return $r;
  43.  }
  44.  
  45. }
  46.  
  47. $content = get_content ('', $siteurl, $gourl, '', $rss);
  48.  
 
 Top
Champion Супермодератор
Отправлено: 02 Октября, 2008 - 15:39:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Ух ё
(Добавление)
Ну ругается, видимо, на function get_content. Функция есть такая. В мануале описана. Если хотите написать свою, назовите по-другому
 
 Top
ykiigor
Отправлено: 02 Октября, 2008 - 16:48:01
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




Нет, ошибка всё равно...
 
 Top
Champion Супермодератор
Отправлено: 02 Октября, 2008 - 16:52:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




напиши её дословно - ctrl-v, ctrl-c
 
 Top
ykiigor
Отправлено: 03 Октября, 2008 - 13:49:29
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




$gourl вызывается из массива

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. function get_content ($scheme, $host, $path, $query, $others=''){
  4.  
  5.  if (function_exists('curl_init')) {
  6.  
  7.                 $ch = curl_init();
  8.                 curl_setopt($ch, CURLOPT_URL, $scheme."://".$host.$path."?".$query);
  9.                 curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  10.                 curl_setopt($ch, CURLOPT_REFERER, $scheme."://".$host.$path.$query);
  11.                 if ($others != '') curl_setopt($ch, CURLOPT_COOKIE, $others);
  12.                 @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  13.                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  14.                 $data = curl_exec($ch);
  15.                 curl_close($ch);
  16.                 if ($data) return $data; else return false;
  17.  }
  18.  else
  19.  {
  20.    if (!empty($others)) $others = "Cookie: ".$others."\r\n";
  21.    else $others = "";
  22.  
  23.    $post="GET $path HTTP/1.1\r\nHost: $host\r\nContent-type: application/x-www-form-urlencoded\r\n{$others}User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\nContent-length: ".strlen($query)."\r\nConnection: close\r\n\r\n$query";
  24.  
  25.    $h=@fsockopen($host,80, $errno, $errstr, 30);
  26.  
  27.         if (!$h) {
  28.            return false;
  29.         }
  30.     else
  31.     {
  32.          fwrite($h,$post);
  33.    
  34.          for($a=0,$r='';!$a;){
  35.             $b=fread($h,8192);
  36.             $r.=$b;
  37.             $a=(($b=='')?1:0);
  38.          }
  39.  
  40.          fclose($h);
  41.     }
  42.  
  43.   return $r;
  44.  }
  45.  
  46. }
  47.  
  48. $c = "xxx";
  49.  
  50. $rss = str_replace("\n", "; ", str_replace("\r", "", stripslashes(rtrim($c))));
  51.  
  52. $content = get_content ('', $siteurl, $gourl, '', $rss);
  53.  
  54. ?>
 
 Top
Champion Супермодератор
Отправлено: 03 Октября, 2008 - 14:27:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Во-первых, что значит $gourl вызывается?
Во-вторых, я пропроси дословно скопировать ошибку, а не привести код программы заново, но в других цветах
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB