如何使用PHP dom或正则表达式从java脚本中提取文本

如何使用PHP dom或正则表达式从java脚本中提取文本,php,regex,dom,Php,Regex,Dom,我想从下面的java脚本部分中获取extrat节点值。java脚本包含在html头部分中。我想用PHP html dom或正则表达式来实现它 <script> ***************************************** ********************************** document.loginform.action ="../Login1.action"; document.loginform.su

我想从下面的java脚本部分中获取extrat节点值。java脚本包含在html头部分中。我想用PHP html dom或正则表达式来实现它

<script>  
     *****************************************
     ********************************** 
     document.loginform.action ="../Login1.action";
 document.loginform.submit();
 }
    </script>

*****************************************
********************************** 
document.loginform.action=“../Login1.action”;
document.loginform.submit();
}
我想获取文档之间的文本。loginform.action=“我想获取此文本”;这两个引语。 请帮帮我。

你可以试试这个: 从HTML中获取
节点,如下所示:

x=document.getElementsByTagName("script");
str = x[0].innerHTML;
这将获得
节点之间的整个脚本内容。 拆分
str
'

var arr = str.split(":");
这将得到一个包含所有行的数组。现在将数组中的所有
document.loginform
字符串分组,然后继续。您最好检查包含“action”的字符串。这将帮助您获得更准确的结果


希望这会对您有所帮助。

要完全按照您的要求执行,您可以使用正则表达式和每个脚本元素的text属性,但是我认为您不会发现它非常健壮或实用

window.onload = function() {
  var script, scripts = document.scripts;
  var re = /document\.loginform\.action =/;
  var text;

  for (var i=0, iLen=scripts.length; i<iLen; i++) {
    script = scripts[i];

    if (re.test(script.text)) {
      text = script.text.match(/document\.loginform\.action ="[^"]+/)[0];
      alert(text.split('"')[1]);
    } 
  }
}
window.onload=function(){
var script,scripts=document.scripts;
变量re=/document\.loginform\.action=/;
var文本;

对于(var i=0,iLen=scripts.length;i您甚至一秒钟都没有搜索,也没有使用人们建议的内容,这是一种寻求他人帮助的糟糕方式。 这是一个使用regex的解决方案

<?php
$html = <<<EOD
....
<script>  
     *****************************************
     ********************************** 
     document.loginform.action ="../Login1.action";
 document.loginform.submit();
 }
    </script>
.....
EOD;
$match = preg_match('/document\.loginform\.action\s*=\s*"([^"]+)";/isU', $html, $result);
echo $match[1];
?>


您可能希望使用DOM解析器实现同样的目的,您需要在此处查看:了解更多信息。

此问题与Java无关,而是与Javascript有关。关于您的问题,您有多种解决方案。如果您确定HTMl格式正确,则可以使用任何XML解析器对其进行解析,检索
//head/script
使用XPath节点,然后使用正则表达式获取所需的内容。或者使用以下内容:然后查找
DOMDocument::getElementsByTagName
以检索所需的节点。“/Login1.action”这将始终更改。请给我一个随时可用的脚本。是的,当然:我只想获取“Login1.action”,请尽可能给出代码。因为我不熟悉它。我希望它用于我的项目。我希望得到字符串形式的结果。我不想要Java脚本。我想要一个php脚本。人们不是来创建您的脚本的。至少尝试一些东西,如果您有问题,请来这里询问。这不是一个寻求答案的好方法。对不起,这是一个错误有点紧急,所以我问。你应该阅读本网站的FAQ()以了解它在这里的工作原理,否则你的问题通常不会有答案。下次你需要什么东西时,人们可能不会想帮助你。