Php 获取内联javascript中变量的值

Php 获取内联javascript中变量的值,php,xpath,Php,Xpath,我正在构建web应用程序,在某个时候,我需要从远程页面中刮取名为fid的变量值,该变量在脚本中显示如下: <script type="text/rocketscript">fid="mytarget"; v_width=640; v_height=360;</script> 但是没有运气 任何有关帮助的信息我们必须猜测您输入的大部分文档和代码。不过,我怀疑body是否是该HTML文档的最外层元素 搜索此脚本元素的有意义的Xpath表达式如下 //script[conta

我正在构建web应用程序,在某个时候,我需要从远程页面中刮取名为
fid
的变量值,该变量在脚本中显示如下:

<script type="text/rocketscript">fid="mytarget"; v_width=640; v_height=360;</script>
但是没有运气


任何有关帮助的信息

我们必须猜测您输入的大部分文档和代码。不过,我怀疑
body
是否是该HTML文档的最外层元素

搜索此
脚本
元素的有意义的Xpath表达式如下

//script[contains(., 'fid')]
如果文档中的
script
元素的文本内容包括
fid
,则可以在文档中的任何位置找到该元素。顺便说一下:
local-name()
返回上下文节点名称的本地部分-这不是您想要的


编辑

因此,假设以下文档(请不要将代码作为链接发布!):

哪个会回来

"mytarget"
不加引号:

substring-before(substring-after(//*[local-name() = 'script' and contains(.,'fid')],'"'),'"')
警告:在某些环境中,双引号必须以不同的方式表示


文档中有一个名称空间,上面的路径表达式将忽略该名称空间。解决此问题的正确方法是注册此名称空间并在路径表达式中使用前缀。

显示此HTML页面,并显示PHP代码的一部分。以下是我要输入fidSo文本值的HTML代码,预期的输出是什么
mytarget
?非常感谢这项工作,并获得fid值,无需引用。很抱歉,经过很长时间的请求,但您的解决方案只有在html格式完美的情况下才起作用,但情况并非总是如此,有时html会遗漏一些元素,在这种情况下,上述解决方案不起作用。您有什么办法吗此?@sherifhalim此路径表达式不依赖于输入文档的特定结构-它已经非常通用。“HTML有时会遗漏某些元素”是什么意思?
substring-before(substring-after(//*[local-name() = 'script' and contains(.,'fid')],'='),';')
"mytarget"
substring-before(substring-after(//*[local-name() = 'script' and contains(.,'fid')],'"'),'"')