我正在开发一个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