使用php在html中搜索硬编码的JavaScript变量


Search html for a hardcoded JavaScript variable with php

我正在开发一个HTML解析器
我用simplehtmldom成功地提取了几个html标签的内容。

我试图找到的最后一个方法是获得硬编码JavaScript变量的最有效方法。

以下片段出现在我想要分析的每个页面中:

<script type="text/javascript" language="javascript"><!--
  var jobPopup145169852;
  var MONS_LOG_VARS = { //LoggingVars
  JobID : 145169852, 
  ApplyType : 0, 
  PopUpMessage: 'Ihr Popup-Blocker verhindert die korrekte Ausführung dieser Seite.', 
  EE: 'EAAQrXuZmYIUF5avSTEZs5tdZQ--', 
  ApplyOnlineUrl: '', 
  TrackingCompany: 'Company Name', 
  TrackingLogo: '', 
  JobWinPopup : jobPopup145169852, 
  YTA : 0, 
  LogUrl :'http://stellenanzeige.monster.de/log.ashx?PositionAdID=145169852&folderid=182198220&tracking=EAAQ.8ifh6a7iJ7indez5y2mEw--&logtype='
  }
//--></script>

现在我想在变量"TrackingCompany"中查找值
在本例中,Company Name

我怎样才能做到这一点?

您可以为此使用RegEx。

Regex:/TrackingCompany: ''([a-zA-Z's]+)''/

RegEx的解释和工作演示:https://www.regex101.com/r/vV3aE5/1

PS。此RegEx假定您的公司名称只有字母和空格。如果您也想在其中包含数字,请使用:/TrackingCompany: ''([a-zA-Z0-9's]+)''/。如果您也有特殊字符,请将其附加在RegEx中的方括号内。


试试下面的工作PHP代码// comments inline

// take all of the file contents into a string $subject
$subject = <<<EOT
<script type="text/javascript" language="javascript"><!--
  var jobPopup145169852;
  var MONS_LOG_VARS = { //LoggingVars
  JobID : 145169852, 
  ApplyType : 0, 
  PopUpMessage: 'Ihr Popup-Blocker verhindert die korrekte Ausführung dieser Seite.', 
  EE: 'EAAQrXuZmYIUF5avSTEZs5tdZQ--', 
  ApplyOnlineUrl: '', 
  TrackingCompany: 'Company Name', 
  TrackingLogo: '', 
  JobWinPopup : jobPopup145169852, 
  YTA : 0, 
  LogUrl :'http://stellenanzeige.monster.de/log.ashx?PositionAdID=145169852&folderid=182198220&tracking=EAAQ.8ifh6a7iJ7indez5y2mEw--&logtype='
  }
//--></script>
EOT;
// initialize the RegEx pattern
$pattern = '/TrackingCompany: ''([a-zA-Z's]+)''/';
// execute the RegEx over the string
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
// check the matched contents
echo $matches[1][0];

您可以尝试在中执行此代码http://writecodeonline.com/php/以便快速检查。


阅读:preg_match manual|PHP