Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pobieranie title z linka
Majkelo23
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

Ostrzeżenie: (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:

  1. function get_url_title($url)
  2. {
  3. $path = file_get_contents($url);
  4. if ( preg_match('/<title>(.*?)<\/title>/', $path, $array) )
  5. {
  6. return $array[1];
  7. }
  8. else
  9. {
  10. return false;
  11. }
  12. }


Ten post edytował Majkelo23 28.05.2012, 16:17:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Majkelo23
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

Ostrzeżenie: (0%)
-----


Własnie po napisaniu pytania, sam wpadłem na to, że muszę w przypadku niepowodzenia sprawdzić link dla "z www." i "bez www.".

Funkcja jest taka:

  1. function get_url_title($url)
  2. {
  3. $path = @file_get_contents($url);
  4. if ( preg_match('@<title>(.*)</title>@', $path, $array) )
  5. {
  6. return $array[1];
  7. }
  8. else
  9. {
  10. if ( strstr($url, 'www.') == FALSE )
  11. {
  12. $url = str_replace('http://', 'http://www.', $url);
  13. $path = @file_get_contents($url);
  14. if ( preg_match('@<title>(.*)</title>@', $path, $array) )
  15. {
  16. return $array[1];
  17. }
  18. }
  19. else if ( strstr($url, 'www.') !== FALSE )
  20. {
  21. $url = str_replace('www.', '', $url);
  22. $path = @file_get_contents($url);
  23. if ( preg_match('@<title>(.*)</title>@', $path, $array) )
  24. {
  25. return $array[1];
  26. }
  27. }
  28. else
  29. {
  30. return $url;
  31. }
  32. }
  33. }


Ale...nadal nic. Może Wy widzicie jakiegoś byka?

EDIT:

dla http://onet.pl/ już działa - dopisuje "www.". Jednak w przypadku http://www.nk.pl/ - nie chce wywalać tego "www." ;/

Ten post edytował Majkelo23 28.05.2012, 17:49:41
Go to the top of the page
+Quote Post

Posty w temacie
- Majkelo23   [PHP] Pobieranie title z linka   28.05.2012, 16:17:40
- - ethann   Mam parę uwag odnośnie regexpa. w preg_match() jak...   28.05.2012, 17:10:40
- - Majkelo23   [PHP] pobierz, plaintext <?php function ge...   28.05.2012, 17:25:00
- - ethann   pokaż co zwraca [PHP] pobierz, plaintext var_dump...   28.05.2012, 17:30:28
- - Majkelo23   Kodstring(14) "http://onet.pl...   28.05.2012, 17:32:31
- - ethann   hm no fakt, zwróć zamiast [PHP] pobierz, plaintext...   28.05.2012, 17:34:33
- - Majkelo23   Cholera, znalazłem problem. Te wszystkie strony ko...   28.05.2012, 17:34:59
- - greycoffey   Musisz podążać za przekierowaniami, lub napisać fu...   28.05.2012, 17:43:37
- - Majkelo23   Własnie po napisaniu pytania, sam wpadłem na to, ż...   28.05.2012, 17:46:32
- - ethann   Zależy. możesz to zrobić w prosty sposób samemu wp...   28.05.2012, 17:46:41
- - Majkelo23   Dla http://onet.pl/ już działa - dopisuje "ww...   28.05.2012, 17:49:58
- - ethann   przede wszystkim włącz ostrzeżenia w php.ini, albo...   28.05.2012, 17:52:34
- - Majkelo23   Niestety, nic to nie dało.   28.05.2012, 17:55:33
- - IProSoft   Gotowa i działająca: [PHP] pobierz, plaintext fun...   28.05.2012, 17:56:03
- - Majkelo23   Problem w tym, że mam coś wyłączonego na serwerze,...   28.05.2012, 18:00:46
- - IProSoft   Sprawdziłem funkcję z postu: http://forum.php.pl/i...   28.05.2012, 18:16:07
- - Majkelo23   Facet na innym forum też twierdził, że mu działa t...   28.05.2012, 18:36:19
- - IProSoft   Niestety nikt bez jakichkolwiek komunikatów/błędów...   28.05.2012, 18:38:18
- - Majkelo23   Ta, tylko że ja nie mam żadnych błędów/komunikatów...   28.05.2012, 20:14:10


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 16:21