-1

テキスト フィールド内の他の 2 つの文字列の間にある文字列をキャプチャしようとしています。

  • 開始文字列: {"website":"
  • 終了文字列: ","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 に答える