我想从url内容中提取版本号。我试着用curl_exec提取信息。但无法让preg_match得到准确的信息。
我试过的代码是
function getVersionFromurl(string $url)
{
$curl = curl_init($url);
$content = curl_exec($curl);
curl_close($curl);
$rx = preg_match("(\"version\" (\d+\.\d+\.\d+\.\d+))", $content, $matches);
echo $matches[1];
}
$url = 'https://www.foxitsoftware.com/downloads/downloadForm.php?retJson=1&product=Foxit-Reader&platform=Mac-OS-X';
$val = getVersionFromurl($url);这里的内容是
{“package_info”:{“语言”:“英语”、“法语”、“德语”、“意大利语”、“西班牙语”、“类型”:“pkg”、“版本”:“3.4.0.1012”、"2.1.0804“、"2.0.0625”、"1.1.1.0301“、"1.1.0.0128”、“大小”:“139.13MB”、“版本”:“10/15/19”,"os":"","down":"/pub/foxit/reader/desktop/mac/3.x/3.4/ML/FoxitReader340.setup.pkg",“镜像”:“”,“手册”:“”,“big_version”:“3.x”}1“
如何从内容中提取3.4.0.1012。我尝试的preg_matcxh给了我错误。如何编写preg_match正则表达式。
请任何帮助。
发布于 2019-12-29 10:29:17
最好将字符串转换为JSON对象,并从中获取版本值。
function getVersionFromurl(string $url)
{
$curl = curl_init($url);
$content = curl_exec($curl);
curl_close($curl);
$contentObj = json_decode($content);
echo $contentObj.package_info.version[0];
}
$url = 'https://www.foxitsoftware.com/downloads/downloadForm.php?retJson=1&product=Foxit-Reader&platform=Mac-OS-X';
$val = getVersionFromurl($url);注意从字符串到对象的转换,并获取版本数组的第一个元素。
$contentObj = json_decode($content);
echo $contentObj.package_info.version[0];发布于 2019-12-29 10:58:32
https://stackoverflow.com/questions/59518550
复制相似问题