我在网页上有一些文字需要在我的php页面中回显'。
如果文字是这样的
"translatedText":"Ciao mondo"
我使用这个PHP代码
<?php
$tr=translatedText;
$Text=file_get_contents("http://mymemory.translated.net/api/get?langpair=en|it&q=Hello%20World!");
$regex = "/".$tr."=\"([^\"]+)\"/";
preg_match_all($regex,$Text,$Match);
$fid=$Match[1][0];
echo $fid;
?>
结果很好
Ciao mondo
但如果文字就像这个
{"translatedText":"Ciao mondo"}
我没有任何结果 如何提取
Ciao mondo
来自那里的文字?
答案 0 :(得分:0)
$var = '{"translatedText":"Ciao mondo"}';
var_dump(json_decode($var));
的输出:强> 的
object(stdClass)#1 (1) {
["translatedText"]=>
string(10) "Ciao mondo"
}
或没有stdClass
;
var_dump(json_decode($var, true));
的输出强> 的
array(1) {
["translatedText"]=>
string(10) "Ciao mondo"
}
答案 1 :(得分:0)
这种结构名为JSON,不仅仅是字符串。
...
$tr = json_decode($Text,TRUE);
echo $tr["translatedText"];
...
您需要验证字符串是否包含在{..}
中,否则您的JSON将无效,因此解码将失败。
<强>更新强>
根据您收到的JSON,您应该这样做:
$tr = json_decode($Text,TRUE);
echo $tr["responseData"]["translatedText"];
答案 2 :(得分:0)
使用json_decode,但解码为数组:
<?php
$response = file_get_contents('http://mymemory.translated.net/api/get?langpair=en|it&q=Hello%20World!');
$array = json_decode($response,1);
echo $array['responseData']['translatedText'];
你也可以:
var_dump($array);
了解整个数组的外观。
答案 3 :(得分:0)
您可以使用json_decode:
$Text = json_decode($Text);
echo $Text['translatedText'];
或假设大括号仅作为字符串的第一个和最后一个字符出现,您可以在preg_match_all
之前尝试:
echo substr($Text, 1, -1);
答案 4 :(得分:-2)
<?php
$json = '{"foo-bar": 12345}';
$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345
?>