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 :: Реализация массовой проверки URL.

 PHP.SU

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


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

> Без описания
gs2309
Отправлено: 04 Февраля, 2012 - 13:07:25
Post Id


Новичок


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


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




Всем доброго дня!
Есть вопрос к людям, разбирающимся в PHP лучше меня.))))
Суть: есть форма (textarea и submit), в форме указываются урлы, каждый урл с новой строки. Нужно, чтобы с каждого урла брался исходный код, далее с помощью регулярки брался текст между <title></title>, а потом подсчитывалось количество слов и выводилось на экран.
Сейчас у меня получилось только так:
index.html
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>Подсчет слов в Title</title>
  5. <meta charset="utf-8">
  6. <link rel="stylesheet" type="text/css" href="style.css">
  7. </head>
  8. <body>
  9. <form method="GET" action="11.php">
  10. <input type="text" value="Введите URL(с http://)" name="adres">
  11. <input type="submit" value="Chek">
  12. </form>
  13. </body>
  14. </html>
  15.  


11.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $name = @file_get_contents(($_GET['adres']));
  4. // Проверяем ответ от сервера
  5. if (strpos($http_response_header[0], '200 OK'))
  6. {
  7.     echo '';
  8. }
  9. else
  10. {
  11.     echo 'Ошибка!<br>';
  12. }
  13. if (preg_match("!<title>(.*?)</title>!si",$name,$ok))
  14.    echo "Title страницы: $ok[1]";
  15. else
  16.    echo "Title не найден";
  17.    $words = $ok[1];
  18.    $chars = mb_strlen($words);
  19.    $result_words = sizeof(explode(" ", $words));
  20.    echo "<br>Слов в title:"." "."$result_words";
  21.    echo "<br>Символов в title:"." "."$chars";
  22.    echo '<br><a href="/">На главную</a>';
  23. ?>
  24.  

С массовой проверкой не выходит. Может кто подскажет как это реализовать?
Заранее спасибо.


-----
...loading...
 
 Top
snikers987
Отправлено: 04 Февраля, 2012 - 14:02:21
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




preg_match_all();

?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
gs2309
Отправлено: 04 Февраля, 2012 - 14:27:10
Post Id


Новичок


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


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




Цитата:
preg_match_all();

?

Возможно. Но интересует часть кода где будет собираться исходный код со всех урлов, проверяться и выводиться. Я просто не могу никак понять как это можно сделать. С массивами не дружен.


-----
...loading...
 
 Top
snikers987
Отправлено: 04 Февраля, 2012 - 15:43:53
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




Не совсем понятна задача, создайте массив url и циклом проверяйте также как и сейчас.
Это банальный парсер..
Или вам нужно искать ссылки на странице и проверять их?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
gs2309
Отправлено: 04 Февраля, 2012 - 17:34:34
Post Id


Новичок


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


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




Цитата:
Это банальный парсер..

А я банальный новичок!)))
Один урл могу проверить. Несколько урлов не получается.

(Отредактировано автором: 04 Февраля, 2012 - 17:35:47)



-----
...loading...
 
 Top
snikers987
Отправлено: 04 Февраля, 2012 - 17:47:51
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>Подсчет слов в Title</title>
  5. <meta charset="utf-8">
  6. <link rel="stylesheet" type="text/css" href="style.css">
  7. </head>
  8. <body>
  9. <form method="POST" action="11.php">
  10. <input type="text" value="Введите URL через запятую(с http://)" name="adres">
  11. <input type="submit" value="Chek">
  12. </form>
  13. </body>
  14. </html>
  15.  


PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $rgUrls = explode(',' , $_POST['adres']);
  4. foreach($rgUrls as $sUrl){
  5.         $name = @file_get_contents($sUrl);
  6.         if (!strpos($http_response_header[0], '200 OK'))
  7.         {
  8.                 echo 'Ошибка!<br>';
  9.                 continue;
  10.         }
  11.         if (preg_match("!<title>(.*?)</title>!si",$name,$ok)){
  12.            echo "Title страницы: $ok[1]";
  13.            $words = $ok[1];
  14.            $chars = mb_strlen($words);
  15.            $result_words = sizeof(explode(" ", $words));
  16.            echo "<br>Слов в title:"." "."$result_words";
  17.            echo "<br>Символов в title:"." "."$chars";
  18.         }else{
  19.            echo "Title не найден";
  20.         }
  21. }
  22. echo '<br><a href="/">На главную</a>';
  23.  

Как-то так

UPD: Поправил!

(Отредактировано автором: 04 Февраля, 2012 - 17:51:54)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
gs2309
Отправлено: 04 Февраля, 2012 - 18:39:22
Post Id


Новичок


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


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




Большое спасибо за помощь, но не работает...


-----
...loading...
 
 Top
snikers987
Отправлено: 04 Февраля, 2012 - 18:44:10
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




gs2309 пишет:
но не работает...

что именно?
проверил, все работает

(Отредактировано автором: 04 Февраля, 2012 - 18:49:54)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
gs2309
Отправлено: 04 Февраля, 2012 - 18:48:39
Post Id


Новичок


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


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






-----
...loading...
 
 Top
snikers987
Отправлено: 04 Февраля, 2012 - 18:51:14
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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





метод формы измените на POST

скопируйте как есть:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <title>Подсчет слов в Title</title>
  3. <meta charset="utf-8">
  4. <link rel="stylesheet" type="text/css" href="style.css">
  5. </head>
  6. <body>
  7. <form method="POST">
  8. Адреса(каждый с новой строки):<br/>
  9. <textarea rows="10" cols="30" value="Введите URL(с http://)" name="adres"></textarea><br>
  10. так лучше будет
  11. <input type="submit" value="Chek">
  12. </form>
  13. </body>
  14. </html>
  15.  


PHP:
скопировать код в буфер обмена
  1. <?
  2. $rgUrls = explode("\n" , trim($_POST['adres']));
  3. foreach($rgUrls as $sUrl){
  4.         if(!preg_match("#^(http://(.*)([\.]{1})([\w]{2,4})(.*))#", $sUrl)) continue;
  5.         $name = file_get_contents(trim($sUrl));
  6.         if (!strpos($http_response_header[0], '200 OK'))
  7.         {
  8.                 echo 'Ошибка!<br>';
  9.                 continue;
  10.         }
  11.         if (preg_match("!<title>(.*?)</title>!si",$name,$ok)){
  12.            echo "<br/>Title страницы: $ok[1]";
  13.            $words = $ok[1];
  14.            $chars = mb_strlen($words);
  15.            $result_words = sizeof(explode(" ", $words));
  16.            echo "<br>Слов в title:"." "."$result_words";
  17.            echo "<br>Символов в title:"." "."$chars";
  18.         }else{
  19.            echo "Title не найден";
  20.         }
  21. }
  22. ?>


Добавил валидацию url

(Отредактировано автором: 04 Февраля, 2012 - 19:52:56)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
gs2309
Отправлено: 04 Февраля, 2012 - 18:54:58
Post Id


Новичок


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


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




Заработало!
(Добавление)
Еще раз спасибо за помощь!
(Добавление)
Скопировал как есть, но "Warning: preg_match() [function.preg-match]: Compilation failed: missing ) at offset 42 in 11.php on line 4

(Отредактировано автором: 04 Февраля, 2012 - 18:56:48)



-----
...loading...
 
 Top
snikers987
Отправлено: 04 Февраля, 2012 - 19:31:14
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




gs2309 пишет:
Заработало!
(Добавление)
Еще раз спасибо за помощь!
(Добавление)
Скопировал как есть, но "Warning: preg_match() [function.preg-match]: Compilation failed: missing ) at offset 42 in 11.php on line 4

исправил, скобку пропустил)


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
gs2309
Отправлено: 04 Февраля, 2012 - 19:37:00
Post Id


Новичок


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


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




И еще раз спасибо ОГРОМНОЕ!))
P.S. По моему Вы пошли против определения в Вашей подписи.))))


-----
...loading...
 
 Top
snikers987
Отправлено: 04 Февраля, 2012 - 19:47:44
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




gs2309 пишет:
И еще раз спасибо ОГРОМНОЕ!))
P.S. По моему Вы пошли против определения в Вашей подписи.))))


ну когда есть время и желание, то от меня не убудет)

ЗЫ я там еще регулярку поправил, но она не идеальна

(Отредактировано автором: 04 Февраля, 2012 - 19:53:32)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
gs2309
Отправлено: 04 Февраля, 2012 - 20:03:17
Post Id


Новичок


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


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




Цитата:
ЗЫ я там еще регулярку поправил, но она не идеальна

Да бог с ней, с идеальной))))


-----
...loading...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB