Jak pobrać meta tagi

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
SeaDog
Nowy
Nowy
Posty: 81
Rejestracja: śr gru 06, 2006 5:56 pm
Lokalizacja: Warszawa

Jak pobrać meta tagi

Post autor: SeaDog »

Jak w temacie. Chodzi mi głównie o opis strony i słowa kluczowe.
masterix
Przelotem
Przelotem
Posty: 220
Rejestracja: wt wrz 07, 2004 6:44 pm
Kontakt:

Re: Jak pobrać meta tagi

Post autor: masterix »

cURL + preg_match
SeaDog
Nowy
Nowy
Posty: 81
Rejestracja: śr gru 06, 2006 5:56 pm
Lokalizacja: Warszawa

Re: Jak pobrać meta tagi

Post autor: SeaDog »

Nie wiem za bardzo jak to użyć. Mógłbyś napisać coś więcej?
fan_pascala
Nowy
Nowy
Posty: 59
Rejestracja: czw lip 12, 2007 7:29 pm
Lokalizacja: Niepołomice
Kontakt:

Re: Jak pobrać meta tagi

Post autor: fan_pascala »

Przykład:
[php]<?php
$address = "http://www.kurnik.pl"; // adres strony
$offset = 0; // od którego znaku czytać,
$length = 5000; // ile znaków czytać
$content = file_get_contents($address,FALSE,NULL,$offset,$length);
echo "Wczytano ".strlen($content)." znaków<br>";
// parametry poza adresem można opuścić, wtedy czyta cały plik.
if (preg_match("/<[\s]*title[\s]*>(.+?)<[\s]*\/[\s]*title[\s]*>/s", $content, $tmp))
{
$title = $tmp[1];
echo "Tytuł : $title";
}
else echo "Tytułu tutaj nie ma!";
echo "<br>";
if (preg_match("/<[\s]*meta[\s]*name[\s]*=(.*?)keywords(.*?)content[\s]*=[\s]*(\"([^\"]+)\"|'([^']+)'|([^>]+))/is", $content, $tmp))
{
$keywords = $tmp[4].$tmp[5].$tmp[6];
echo "Słowa kluczowe : $keywords";
}
else echo "Słów kluczowych tutaj nie ma!"
?>[/php]
Że też wszyscy ostatnio roboty robią ;)
SeaDog
Nowy
Nowy
Posty: 81
Rejestracja: śr gru 06, 2006 5:56 pm
Lokalizacja: Warszawa

Re: Jak pobrać meta tagi

Post autor: SeaDog »

Wielkie dzięki, kod działa, sprawdzałem na innym serwerze.
Okazało się, że na moim jest wyłączona funkcja file_get_contents.

Poradzisz coś na to? Czytałem coś o JavaScripcie...
fan_pascala
Nowy
Nowy
Posty: 59
Rejestracja: czw lip 12, 2007 7:29 pm
Lokalizacja: Niepołomice
Kontakt:

Re: Jak pobrać meta tagi

Post autor: fan_pascala »

Spróbuj jeszcze tak (cURL, tak jak radził kolega wyżej)
[php]<?php
$address = "http://www.wp.pl"; // adres strony
//$offset = 0; // od którego znaku czytać,
//$length = 5000; // ile znaków czytać

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, $address);
$content = curl_exec($curl);
curl_close($curl);

echo "Wczytano ".strlen($content)." znaków<br>";
// parametry poza adresem można opuścić, wtedy czyta cały plik.
if (preg_match("/<[\s]*title[\s]*>(.+?)<[\s]*\/[\s]*title[\s]*>/s", $content, $tmp))
{
$title = $tmp[1];
echo "Tytuł : $title";
}
else echo "Tytułu tutaj nie ma!";
echo "<br>";
if (preg_match("/<[\s]*meta[\s]*name[\s]*=(.*?)keywords(.*?)content[\s]*=[\s]*(\"([^\"]+)\"|'([^']+)'|([^>]+))/is", $content, $tmp))
{
$keywords = $tmp[4].$tmp[5].$tmp[6];
echo "Słowa kluczowe : $keywords";
}
else echo "Słów kluczowych tutaj nie ma!"
?>[/php]
SeaDog
Nowy
Nowy
Posty: 81
Rejestracja: śr gru 06, 2006 5:56 pm
Lokalizacja: Warszawa

Re: Jak pobrać meta tagi

Post autor: SeaDog »

Niestety nie działa:(
fan_pascala
Nowy
Nowy
Posty: 59
Rejestracja: czw lip 12, 2007 7:29 pm
Lokalizacja: Niepołomice
Kontakt:

Re: Jak pobrać meta tagi

Post autor: fan_pascala »

Masz może dostęp do ustawień serwera?
SeaDog
Nowy
Nowy
Posty: 81
Rejestracja: śr gru 06, 2006 5:56 pm
Lokalizacja: Warszawa

Re: Jak pobrać meta tagi

Post autor: SeaDog »

Nie mam. Hosting mam wykupiony w NetMark-u.
fan_pascala
Nowy
Nowy
Posty: 59
Rejestracja: czw lip 12, 2007 7:29 pm
Lokalizacja: Niepołomice
Kontakt:

Re: Jak pobrać meta tagi

Post autor: fan_pascala »

Ja już nie mam niestety innych pomysłów, można się jeszcze teoretycznie łapać fopen() ale tak na prawdę, to jedno i to samo. Wygląda na to że na twoim serwerze masz ustawioną opcję allow_url_fopen na false (aby korzystać z protokołu http powinno być true). Można ją ustawić tylko w php.ini.
SeaDog
Nowy
Nowy
Posty: 81
Rejestracja: śr gru 06, 2006 5:56 pm
Lokalizacja: Warszawa

Re: Jak pobrać meta tagi

Post autor: SeaDog »

Napisałem do działu technicznego z zapytaniem, czy by mi ją uaktywnili.
Nie wiem czy mogą to zrobić, ale warto sprawdzić.
masterix
Przelotem
Przelotem
Posty: 220
Rejestracja: wt wrz 07, 2004 6:44 pm
Kontakt:

Re: Jak pobrać meta tagi

Post autor: masterix »

Jak nie masz cURLa to na siłę można na socketach ( fsockopen() itd ). Samo wyodrębnianie danych masz podane przez kolegów wyżej - kwestia połączenia.
SeaDog
Nowy
Nowy
Posty: 81
Rejestracja: śr gru 06, 2006 5:56 pm
Lokalizacja: Warszawa

Re: Jak pobrać meta tagi

Post autor: SeaDog »

Niestety nie działa. Możliwe, że coś źle robię. Użyłem też funkcji fopen z trybem r, ale również wyświetla błąd.
masterix
Przelotem
Przelotem
Posty: 220
Rejestracja: wt wrz 07, 2004 6:44 pm
Kontakt:

Re: Jak pobrać meta tagi

Post autor: masterix »

fsockopen nie jest blokowane przez adminów więc zapewne coś robisz nie tak. Testowałeś przykłady z manuala?
SeaDog
Nowy
Nowy
Posty: 81
Rejestracja: śr gru 06, 2006 5:56 pm
Lokalizacja: Warszawa

Re: Jak pobrać meta tagi

Post autor: SeaDog »

zamiast funkcji file_get_contents dawałem fsockopen z pętlą, ale wywala błąd.
Nie wiem jak to połączyć z funkcją preg_match.
ODPOWIEDZ