-1

我正在尝试捕获文本字段中和其他两个字符串之间的字符串。

  • 开始字符串:{“网站”:“
  • 结束字符串:","re​​ferrer":"

完整的字符串看起来像这样:

  • {"website":"www.Domain.com","re​​ferrer":"在 google+ 上受邀"}
  • 或者:
  • {“网站”:“www.AnotherDomain.com”,“推荐人”:“”}
  • 也许:
  • {“网站”:“www.about.me/SubDomain”,“推荐人”:“”}

我只需要捕获开始字符串和结束字符串之间的所有内容,并且一直在尝试各种结果不一的字符串方法。

开始和结束字符串总是相同的。

有什么建议么...?

4

2 回答 2

4

这称为 json 数组,可以使用json_decode函数将其转换为 php 数组。

$json = '{"website":"www.Domain.com","referrer":"invited on google+"}';
$info_array = json_decode($json, true);
echo $info_array['website'];

您将不需要任何 preg_match、字符串拆分或其他东西。

演示:http ://codepad.org/Mz0iNcGo

于 2013-07-23T22:25:32.080 回答
0

像这样的东西应该工作......

<?php
$subject = "{"website":"www.Domain.com","referrer":"invited on google+"}";
$pattern = '/(?<=website":").*(?=","referrer)/';
preg_match($pattern, $subject, $matches);
print_r($matches[0]);
?>

$matches[0] 实际上包含您的字符串。

于 2013-07-23T22:25:42.067 回答