Php 获取字符串之间的字符串以进行字符串预匹配
我在php中使用了这个preg_匹配来获取url字符串。但我的问题是我无法从中获得任何数据Php 获取字符串之间的字符串以进行字符串预匹配,php,regex,Php,Regex,我在php中使用了这个preg_匹配来获取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.7182
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
您可能会遇到问题,因为
*
中还包含[字符。
您可以使用此选项:
preg_match("/\[(gmap)\]([^\[]*)?\[\/(gmap)\]/si", $content, $url);
这非常好:
<?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];
?>
干杯!您的解决方案出了什么问题?正常工作,
$url[2]
是[gmap]
和[/gmap]之间的字符串
。代码按预期工作。见。我会再次检查我的代码。如果我做错了什么。谢谢。这与OP有什么不同?person没有使用echo/print来获取字符串。因此,为了引导他正确的方向,我只是粘贴了整个工作代码,因为他将问号固定在点星号上,不应该包括t打开方括号。它应该抓住所有的*
,直到它碰到表达式?
的下一部分,在本例中,这是一个打开的方括号。