-2

次のjavaスクリプト部分からextratノード値が必要です。javaスクリプトはhtmlヘッドセクションに含まれています。PHPhtmldomまたはregexで実行したいと思います。

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

document.loginform.action="このテキストを取得したい";の間のテキストを取得したい 2つの引用符。私を助けてください。

4

3 に答える 3

1

これで試すことができます<script>:次のようにHTMLからノードを取得します:

x=document.getElementsByTagName("script");
str = x[0].innerHTML;

これにより、ノード間のスクリプトコンテンツ全体が取得されます<scrip> and </script>str'を分割します

var arr = str.split(":");

これにより、すべての行を含む配列が取得されます。次に、配列内のすべてのdocument.loginform文字列をグループ化して、さらに先に進みます。できれば「アクション」を含む文字列をチェックする必要があります。これにより、より正確な結果を得ることができます。

これがお役に立てば幸いです。

于 2012-05-29T05:37:05.923 に答える
1

あなたが求めたことを正確に行うには、正規表現と各スクリプト要素の 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]);
    } 
  }
}
于 2012-05-29T05:42:08.580 に答える
-1

あなたは一瞬でも検索したり、人々があなたに提案したものを使用したりしていません。これは人々に助けを求めるのに悪い方法です。これは正規表現を使用したソリューションです。

<?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パーサーを使用して同じことを実現することもできます。詳細については、http: //docs.php.net/manual/en/domdocument.loadhtml.phpを確認する必要があります。

于 2012-05-29T06:13:51.740 に答える