我有一个变量$ string,里面有以下布局:
image: "http://web.com/files/images/442873_large.jpg",
thumb: "http://static.web.com/scripts/image.php/60x60/402813.jpg",
mp3: "http://web.com/files/clip/6240/23121376.mp3",
waveform: "http://web.com/files/wave/23121376-wf.png"
我如何找到并设置拇指的url:到一个新变量,即:
$thumb = 'http://static.web.com/scripts/image.php/44x44/442873.jpg';
但每次运行脚本时,拇指网址(以及所有值)都会有所不同(因此我无法匹配实际网址的内容)。
基本上我需要使用哪些功能/功能:
1)搜索整个字符串以获取拇指:
2)选择以下引号之间的所有内容
3)将结果存储到变量(不带“”)
答案 0 :(得分:1)
如果这是结构化数据格式(json,xml)的一部分,那么最好使用解析器来表示所述格式。
如果失败,根据实际提供的信息,一个简单的正则表达式将会:
$string = 'image: "http://web.com/files/images/442873_large.jpg",
thumb: "http://static.web.com/scripts/image.php/60x60/402813.jpg",
mp3: "http://web.com/files/clip/6240/23121376.mp3",
waveform: "http://web.com/files/wave/23121376-wf.png"';
preg_match("~thumb: \"(.*)\",~", $string, $matches);
echo $matches[1];
答案 1 :(得分:0)
这个答案无疑是相当丑陋的,但确实有效。它利用了几个explode s(拆分字符串),foreach(迭代部分)和str_replace(去掉双引号)
$string = 'image: "http://web.com/files/images/442873_large.jpg",
thumb: "http://static.web.com/scripts/image.php/60x60/402813.jpg",
mp3: "http://web.com/files/clip/6240/23121376.mp3",
waveform: "http://web.com/files/wave/23121376-wf.png"';
$array = explode(",\r\n", $string);
$value = "not found";
foreach($array as $entry)
{
if(substr($entry, 0, 5) == "thumb")
{
$parts = explode(": ", $entry);
$value = str_replace('"', '', $parts[1]);
break;
}
}
echo $value;