如何在 php 中有效地从整个 cURL 响应中获取一个特定行


How to fetch one specific line efficiently from a whole cURL response in php?

我通过使用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