Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用DOMDOCUMENT提取JavaScript值_Javascript_Php_Html - Fatal编程技术网

使用DOMDOCUMENT提取JavaScript值

使用DOMDOCUMENT提取JavaScript值,javascript,php,html,Javascript,Php,Html,可以使用DOM文档提取javascript值吗 <script type="text/javascript"> var datePickerDate = "October 14, 2014"; $(document).ready(function(){ // meetings datepicker $("#datepicker").datepicker({ showOn: 'button', buttonImage: '/imag

可以使用DOM文档提取javascript值吗

<script type="text/javascript">
    var datePickerDate = "October 14, 2014";

  $(document).ready(function(){
    // meetings datepicker
    $("#datepicker").datepicker({
      showOn: 'button',
      buttonImage: '/images/calendar.gif',
      buttonImageOnly: true,
      onSelect: function(dateText, inst) {
        populate_meetings(dateText, 0)
      },
      dateFormat: 'd MM yy',
      minDate: new Date(2009, 0, 1), maxDate: 0
    });
    $('#datepicker').datepicker('option', 'defaultDate', new Date("October 14, 2014"));
    $('#datepicker').val("October 14, 2014");
  });
    //call on page load to get meetings and date
    populate_meetings("October 14, 2014", 15515);
</script>
html中有一些javascript,其中包含日期。。。。我想抓住那个日期,把它放在一个可验证的文件里


populate meetings只需在下拉框中填入日期即可。显然,您无法使用PHP执行javascript,因此最好使用正则表达式获取JS变量。下面是一个如何使用DOMXPath执行此操作的示例:

# create a new XPath object that will operate on the DOM that you've initialised
# in your code
$xp = new DOMXPath($dom);

# find all the script elements in the page
$scripts = $xp->query("//script");
foreach ($scripts as $s) {
    # see if there are any matches for var datePickerDate in the script node's contents
    if (preg_match('#var datePickerDate = "(.*?)"#', $s->nodeValue, $matches)) {
        # the date itself (captured in brackets) is in $matches[1]
        print_r($matches[1]);
    }
}
输出:

October 14, 2014

我真的不明白问题出在哪里。你能再澄清一下吗?为什么标签中有PHP?在
填充会议
中发生了什么?我编辑了以上内容以提供更多信息
October 14, 2014