【发布时间】:2015-02-03 13:49:48
【问题描述】:
我认为这是一件容易的事,但显然不是。
$dom = new DOMDocument();
$dom->loadHTMLFile("myhtml.html");
$timestamp = $dom->getElementById('timestamp');
$timestamp = $dom->saveHTML($timestamp);
$matches_out = array();
if (preg_match_all('/<div id="timestamp">(.*)<\/div>/', $timestamp, $matches_out)) {
$timestamp = $matches_out[0];
}
echo $timestamp;
我需要从数组中取出值并将其存储在$timestamp 变量中。当我使用print_r() 时,我得到Array ( [0] =>1422936994)。我认为这意味着要获得我的时间戳,我只需执行$matches_out[0],因为我可以在零索引上看到它,或者我错过了什么。
试图回应它让我知道:Notice: Array to string conversion in C:\xampp\htdocs\myscript.php on line 10
【问题讨论】:
-
我不太明白这个问题,但是是的,$timestamps 现在是数组,当你做 echo 时,它会显示错误
-
但我认为您可以使用索引号从数组中获取字符串,请参见此处:stackoverflow.com/a/16876209
-
如果您查看 preg_match_all() 文档,您会发现 $matches_out 是根据标志排序的多维数组中所有匹配项的数组。所以请不要指望 $matches_out[0] 现在是字符串
-
我不明白你为什么还要使用
preg_match_all。为什么不使用DOMDocument object 方法?例如getElementsByTagName 方法。