获取字符串preg_match之间的字符串

时间:2014-06-06 07:42:12

标签: php regex

我在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

2 个答案:

答案 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);