Pobieranie title z linka

Odpowiedz Nowy wątek
2012-05-28 17:31
Ciastek
0

Potrzebuję funkcji, która wyciągnie mi title danej strony, jeśli z kolei się nie uda to zwróci po prostu false.
Próbowałem najprostszym sposobem - file_get_contents() - za cholerę nie chce działać. Są wyjątki, np. nk.pl przeczyta, ale onet.pl / interia.pl / wp.pl nie potrafi odczytać, zwraca mi false. Czym to jest spowodowane ?

Kod wygląda tak:

function get_url_title($url)
{
    $path = file_get_contents($url);
    if ( preg_match('/<title>(.*?)<\/title>/', $path, $array) )
    {
        return $array[1];
    }
    else
    {
        return false;
    }
}

Pozostało 580 znaków

2012-05-28 18:13
0

Jest to spowodowane używaniem regexów do parsowania stron. W danej chwili dla danej strony możesz zrobić regexa do wyciągania informacji, ale do tak ogólnych rzeczy zdecydowanie lepszym i nawet prostszym rozwiązaniem będzie użycie parsera html.

Edit: oczywiście podajesz URL z http:// ?

edytowany 1x, ostatnio: Zjarek, 2012-05-28 18:18

Pozostało 580 znaków

2012-05-28 18:26
Ciastek
0
echo get_url_title('http://onet.pl');

Jak widać, tak.

Możesz trochę jaśniej ?

Pozostało 580 znaków

2012-05-28 18:54
0

SOA#1 (Wirtualna Polska - www.wp.plPortal INTERIA.PL - wiÄcej niż siÄ spodziewasz!Onet - informacje, rozrywka, emocje)

 <?php
function get_url_title($url)
{
        $path = file_get_contents($url);
        if ( preg_match('/<title>(.*?)<\/title>/', $path, $array) )
        {
                return $array[1];
        }
        else
        {
                return false;
        }
}
echo get_url_title('http://wp.pl');
echo get_url_title('http://interia.pl');
echo get_url_title('http://onet.pl');
?>
edytowany 1x, ostatnio: Zjarek, 2012-05-28 18:55

Pozostało 580 znaków

2012-05-28 19:06
Ciastek
0

Nie jest to możliwe, aby powyższy kod działał, dlatego, że te strony musza mieć w linku jeszcze "www". Właśnie do tego doszedłem i wiem dlaczego moje rozwiązanie nie chciało działać. Problem mam tylko z tym, jak to teraz zrobić bardziej uniwersalne :)

Pozostało 580 znaków

2012-05-28 19:11
0

Jakoś działa ;) 7478195224fc3b1a8d8f55.png

Pozostało 580 znaków

2012-05-28 19:13
PS
0

To kwestia obsługi redirectów...

Pozostało 580 znaków

2012-05-28 19:14
Ciastek
0

No to dziwne ;) U mnie nie działa, jeśli strona wymaga w adresie 'www.'. Dlatego nk.pl mi działało bo nie wymaga 'www' w adresie. Z kolei jesli dopiszę 'www' do adresu onet'u to onet działa, ale znów nk nie dziala.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0