Как так сделать? php

12
[Удален]
970

В этих вопросах я "нуль", но просто ради любопытства

Вот допустим - http://www.site.ru/page.php?www.site1.ru

Интересно вот что: вбил я например в строку http://www.site.ru/page.php?www.yandex.ru - и получил заголовок (между тегами title который) Яндекса.

Всех ответивших награжу +сами :)

psylosss
На сайте с 23.12.2005
Offline
126
#1

удалено. возможно я ошибся.

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
ref
На сайте с 21.11.2004
Offline
91
ref
#2

на page.php должен быть скрипт, который парсит страницу, передаваемую ему как параметр и вынимает титлы или вы про что?

с уважением, Леонид
bonzaza
На сайте с 10.06.2006
Offline
82
#3

нужен готовый код или сама идея реализации ?

Если не мы, то кто?
[Удален]
#4
bonzaza:
нужен готовый код или сама идея реализации ?

Ну как парсить я вроде знаю :)

А вот как брать оттуда переменную... короче помогите, пример кода покажите... :)

bonzaza
На сайте с 10.06.2006
Offline
82
#5

if(!$_GET && !array_key_exists('url',$_GET)) {

echo 'введите url вида ?url=http://www.yandex.ru/';
} else {
$url = parse_url($_GET['url']);
if(!@$url['host']) exit('неправильный url');
if(!@$url['path']) $url['path'] = '/';

$sok = @fsockopen($url['host'], 80, $errno, $errstr, 30);
if(!$sok) {
exit('ошибка сокета');
} else {
$head = "GET ".$url['path']." HTTP/1.1\r\n";
$head .= "Host: ".$url['host']."\r\n";
$head .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7\r\n";
$head .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$head .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
$head .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
$head .= "Connection: Close\r\n\r\n";

fwrite($sok, $head);
$out = '';
while(!feof($sok)) {
$out .= fgets($sok,128);
}
fclose($sok);
echo $out;
}
}

вот на скорую руку - парсить соответственно $out на <title>

если какие ошибки - не обессудьте :) ща дотестирую - но код рабочий

Mmonger
На сайте с 01.12.2005
Offline
165
#6
Lazarev:
В этих вопросах я "нуль", но просто ради любопытства

Вот допустим - http://www.site.ru/page.php?www.site1.ru

Интересно вот что: вбил я например в строку http://www.site.ru/page.php?www.yandex.ru - и получил заголовок (между тегами title который) Яндекса.

Всех ответивших награжу +сами :)

http://www.site.ru/page.php?url=www.yandex.ru

В page.php получаете значение GET-переменной url, в данном случае www.yandex.ru, далее, используя сURL или fopen(), получаете содержимое страницы.

Далее внутри страницы парсится содержимое тега <title>.

Принципиально - так, на какой стадии у вас возникла трудность?

Всё будет хорошо, но мы приложим усилия!
Mmonger
На сайте с 01.12.2005
Offline
165
#7
Lazarev:
Ну как парсить я вроде знаю :)
А вот как брать оттуда переменную... короче помогите, пример кода покажите... :)

$_GET['имяпеременной']

[Удален]
#8

bonzaza, ага, вроде так :) А теперь, значит надо <title> выдирать, так?

bonzaza
На сайте с 10.06.2006
Offline
82
#9

после fclose() ставите

if(!preg_match_all('/<title>(.*)<\/title>/isU',$out,$tag)) {

exit('заголовок не найден');

} else {

print_r($tag);

}

небольшие пояснения:

выдирает заголовок из всего текста :) можно и preg_match

/iU чтобы регистронезависимый + квантификаторы не жадничали ;)

$tag через print_r - чтобы было понятно какую часть массива ловить на выходе

вообщем-то все

_ppr
На сайте с 28.06.2006
Offline
10
#10
Lazarev:
В этих вопросах я "нуль"


<?php

$url = $_GET['url'];

$content = file_get_contents($url);
preg_match("|<title>(.*?)</title>|is", $content, $matches);
print $matches[1];

?>

"+" можешь отправлять на Z279674544421 😂

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий