0

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ステートメントは最も効率的なステートメントではないと思います。ドットが多すぎて、次のようなものがあるはずです。

LookFor =最終更新日:

LookForが表示されている場合は、次の25文字を取得します。

正しいpreg_matchシンテックスを使用していますか?現時点では機能しており、望ましい結果が得られていますが、どのように機能しているかわかりません。

このpregマッチラインに相当する正しい/効率的なものを教えてください。

また、最初の126行すべてを通過するのではなく、直接127行目にジャンプするようにPHPに指示するにはどうすればよいですか。[CR][LF]で終わるすべての行。

PS

  • 次の25文字だけが必要になります。
  • 必要な行は常に127番目になります
  • 取得した日付をテキストの文字列として使用しています。計算は行わず、.csvファイルに保存するだけです。しかし、テキストの代わりに、適切な日付形式で取得できれば、本当に嬉しいです。今のところ、それは単なるテキストの文字列です。
4

1 に答える 1

3

これを試して :

<?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
于 2012-04-14T13:45:37.923 に答える