2010-12-27 17 views
0

Ich habe einen $source var, die ich mit Curl erhalten und enthält die folgenden Kommentar gesetzt ZeichenfolgePHP Regular Expression HTML

//"url":"http://lh5.ggpht.com/_EpgGIto9934/TKXKqAw7uFI/AAAAAAAAGrM/PrQiCNyUdEo/8827.jpg"," 
$regex = "!url/"/:/"(.*)8827/.jpg!U"; 
preg_match_all($regex, $source, $res); 
var_dump($res); 

Ich möchte die http://.....jpg Adresse bekommen, was mache ich falsch? Danke

+1

Welche Art von String ist das? Woher kommt das? Ich glaube nicht, dass das einen Regex braucht. –

+1

Auch für das was du falsch machst: die Flucht. Es ist \ Backslash, nicht '/'. – mario

Antwort

4

Das sieht aus wie json. Wenn das der Fall ist, brauchen Sie dafür keine regulären Ausdrücke. Sie können nur json_decode

<?php 

$s = "//\"url\":\"http://lh5.ggpht.com/_EpgGIto9934/TKXKqAw7uFI/AAAAAAAAGrM/PrQiCNyUdEo/8827.jpg\",\""; 

$regex = '/http(.+)\.jpg/'; 
preg_match($regex, $s, $matches); 
echo $matches[0]; 

?> 
0

verwenden können Sie diese Regex verwenden

http.+\....(?=",".+) 

, die für alle drei Buchstaben Erweiterungen funktionieren.

1
<?php 
$source = '"url":"http://lh5.ggpht.com/_EpgGIto9934/TKXKqAw7uFI/AAAAAAAAGrM/PrQiCNyUdEo/8827.jpg","'; 
$regex = '/^.*\/([^\/]+\.jpg).*$/'; 
preg_match($regex, $source, $res); 
print_r($res); 
$jpg = $res[1]; 
?>