PHP регулярное выражение HTML - PullRequest
0 голосов
/ 27 декабря 2010

У меня есть $source var, который я получаю с помощью curl и содержит следующую закомментированную строку

//"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);

Я хочу получить адрес http://.....jpg Что я делаю неправильно? Спасибо

Ответы [ 3 ]

4 голосов
/ 27 декабря 2010

Это похоже на JSON. Если это так, вам не понадобятся регулярные выражения для этого. Вы можете просто использовать 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];

?>
1 голос
/ 27 декабря 2010
<?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];
?>
0 голосов
/ 27 декабря 2010

Вы можете использовать это регулярное выражение

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

, которое будет работать для всех трех буквенных расширений.

...