我通过使用cURL得到$str响应。 $str是html格式的,总是由总共327行组成。我想从第 127 行获取日期,最初是
<b>Last Updated On:</b>17-Dec-2011 11:33:41 UTC<br><br>
为了尝试减少$str使用的内存,在 cURl 之后立即,我这样做
$str = strip_tags($str);
然后,要获取整行,
preg_match("/^上次更新于........................./m", $str, $line);
$lastupdate = $line[0];
然后,要删除多余的文本,
$lastupdate = str_replace("上次更新日期:", ", $lastupdate);
现在我认为这个preg_match声明不是最有效的声明。它使用了太多的点,必须有类似的东西
查找 = 上次更新时间:
如果您看到"查找",请获取接下来的 25 个字符。
我是否使用了正确的preg_match语法?目前它正在工作,并给了我想要的结果,但我不知道它是如何工作的。
请向我建议此预料匹配线的正确/有效等效物。
另外,我怎样才能告诉 PHP 直接跳转到第 127 行,而不是遍历所有前 126 行。所有具有 [CR][LF] 结尾的行。
附言
- 我只需要接下来的 25 个字符。
- 我需要的行将永远是第 127 行
- 我将检索到的日期用作文本字符串;没有计算,仅用于存储在.csv文件中。但是,如果我能以正确的日期格式获取它,而不是文本,那真的会很高兴。现在它只是一串文本。
试试这个:
<?php
// get the lines in an array
$lines = explode("'n",$str);
// get the 127th line
$line = $lines[126];
// get the date
preg_match('/<'/b>(.+)<br><br>/', $line, $matches);
$date = $matches[1];
echo $date;
?>
输出:
17-Dec-2011 11:33:41 UTC