Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyciagniecie adresow obrazow
Forum PHP.pl > Forum > PHP
ikioloak
Napisałem funckje do wyciagania adresow obrazow ze strony htm objetych w tagach <img src=""> oraz w <... background="" >
  1. <?php
  2.  
  3. function getImages($string)
  4. {
  5. $string=substr($string,strpos($string,'<body'));
  6. $pieces=explode(' ',$string);
  7. foreach ($pieces as $val)
  8. {
  9. $pos = strpos($val,'src="');
  10.  
  11. if ($pos === 0)
  12. {
  13.  
  14. $temp=substr(trim($val),5);
  15.  
  16. $temp=substr($temp,0,strlen($temp)-1);
  17. if ((strpos($temp,'.jpg'))||(strpos($temp,'.gif'))||(strpos($temp,'.png')))
  18. $return[]=$temp;
  19. }
  20.  
  21. $pos = strpos($val,'background="');
  22.  
  23. if ($pos === 0)
  24. {
  25.  
  26. $temp=substr(trim($val),12);
  27.  
  28. $temp=substr($temp,0,strlen($temp)-1);
  29. if ((strpos($temp,'.jpg'))||(strpos($temp,'.gif'))||(strpos($temp,'.png')))
  30. $return[]=$temp;
  31. }
  32. }
  33. return $return;
  34. }
  35.  
  36. ?>


Funkcja dziala ale mysle ze mozna rozwiazac to wyrazeniami regularnymi - co moja mocna strona nie jest. Jesli ma ktos pomysl, lub dojzy blad w funkcji to prosze o komentarz.
crash
Moja wersja (ale i tak można pewnie to zoptymalizować):
  1. <?php
  2. function getImages( $string )
  3. {
  4.  $output = array();
  5.  if( preg_match_all( '#<.*(src|background)=('|")([^'"]+)('|").*>#i', $string, $out ) )
  6.  {
  7. $output = $out[ 3 ];
  8.  }
  9.  return $output;
  10. }
  11. ?>
shpyo
[ot] Skrypt nie ma sensu gdy trafisz na stronę zrobioną w xhtmlu ;] [/ot]
Radarek
Cytat(crash @ 2005-11-22 11:32:04)
Moja wersja (ale i tak można pewnie to zoptymalizować):
  1. <?php
  2. function getImages( $string )
  3. {
  4.  $output = array();
  5.  if( preg_match_all( '#<.*(src|background)=('|")([^'"]+)('|").*>#i', $string, $out ) )
  6.  {
  7. $output = $out[ 3 ];
  8.  }
  9.  return $output;
  10. }
  11. ?>

Zamiast zachlannnego operatora * uzyj *?. Czyli .* zamien na .*?.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.