在PHP中,我尝试剥离信息并将它们存储在$ sysp变量中,该变量来自名为$ freply的字符串,如下所示:
var id='E8ABFA19FDE2';
var sys_ver='17.37.2.49';
var app_ver='20.9.1.150';
使用PHP sscanf 以及以下参数:
sscanf($freply, "var sys_ver='%[^']'", $sysver);
然而,$ sysver中的空白结果就是我得到的。
更新 使用以下方法处理第一行:
sscanf($freply, "var id=' %[^']'", $ea);
给我一个正确的结果加载,如$ ea所示,显示E8ABFA19FDE2。 有人能告诉我哪里出错了吗? 尽管我使用PHP,但我猜这个问题也与Javascript或任何其他类C语言有关。
答案 0 :(得分:1)
你所说的sscanf()
是你的字符串是以文字字符var sys_ver...
等开头的格式,然后你传递的是一个以var id...
开头的字符串,它是NOPE'马上出去。
这有效:
sscanf($freply, "var id='E8ABFA19FDE2';\nvar sys_ver='%[^']'", $sysver);
或者这个:
foreach (explode("\n", $freply) as $line) {
if (sscanf($line, "var sys_ver='%[^']'", $sysver)) break;
}
但真的sscanf()
并不是这项工作的正确工具。只需使用preg_match()
:
preg_match("/var sys_ver='([^']+)'/", $freply, $matches);
$sysver = $matches[1];