我在php中有这个preg_match来获取字符串之间的url字符串。但我的问题是我无法从中获取任何数据
preg_match( "/\[(gmap)\](.*?)\[\/(gmap)\]/si", $content, $url)
我需要获取此字符串中的字符串
[gmap]http://maps.google.com/maps/api/staticmap?zoom=15&size=325x125&maptype=roadmap&markers=color:purple|40.718217,-73.998284&sensor=false[/gmap]
但我无法得到结果。为什么呢?
$url[2]
我需要
http://maps.google.com/maps/api/staticmap?zoom=15&size=325x125&maptype=roadmap&markers=color:purple|40.718217,-73.998284&sensor=false
答案 0 :(得分:1)
这完全没问题:
<?php
$url="";
$content = '[gmap]http://maps.google.com/maps/api/staticmap?zoom=15&size=325x125&maptype=roadmap&markers=color:purple|40.718217,-73.998284&sensor=false[/gmap]';
preg_match( "/\[(gmap)\](.*?)\[\/(gmap)\]/si", $content, $url);
print $url[2];
?>
干杯!
答案 1 :(得分:0)
您可能遇到问题,因为.*
还包含[字符。
你可以改用它:
preg_match("/\[(gmap)\]([^\[]*)?\[\/(gmap)\]/si", $content, $url);