我从以下网址获取内容:http://money18.on.cc/js/real/hk/quote/16981_r.js
此文件的内容如下:
M18.r_16981 = {
"ltt": '2018/06/21 11:43',
"np": '0.050',
"iep": '0.000',
"iev": '0',
"ltp": '0.050',
"vol": '940000',
"tvr": '49860',
"dyh": '0.060',
"dyl": '0.049'
};
我想提取“ vol”之后的数字,即940000。
这是我的php:
<?php
$content = file_get_contents("http://money18.on.cc/js/real/hk/quote/16981_r.js");
echo $content."<br>";
preg_match("/(?<=vol\": ').*(?=', \"tvr)/", $content, $output_array);
print_r(array_values($output_array));
?>
结果不返回任何内容。正则表达式是错误的还是其他任何问题?
谢谢。
答案 0 :(得分:1)
答案 1 :(得分:0)
远射不过...
如果该内容实际上旨在表示JSON并且您可以控制它: 将其设置为正确的格式,因为这样可以更轻松,更安全地从中获取所需的数据。
$jsonString = <<<JSON
{
"ltt": "2018/06/21 11:43",
"np": "0.050",
"iep": "0.000",
"iev": "0",
"ltp": "0.050",
"vol": "940000",
"tvr": "49860",
"dyh": "0.060",
"dyl": "0.049"
}
JSON;
$jsonAsArray = json_decode($jsonString, true);
var_dump($jsonAsArray['vol']);