1

2 つの HTML タグを検索し、その間のすべてを取得しようとしています。各タグを個別に試してみると、それらは問題ないことがわかり、スペルが正しく、存在することがわかります。問題はパターンにあると思います。誰か助けてください。私がオンラインで調査することはすべて、私の頭の中にあるようです。あなたのパターンがどのように機能するかを説明していただければ、それは素晴らしいことです!

以下のコードを参照してください。ご不明な点がございましたら、お気軽にお問い合わせください。

御時間ありがとうございます:)

<?php
$date= date(Y)."/".date(n)."/".date(j);
$address= "http:www.example.com/".$date;
$text_page = file_get_contents("$address");

$searchfor1 = '<li id="menuSynchronizeSwitch">';
$searchfor2 = '<li  id="footerPrevWeek';

header('Content-Type: text/plain');

$pattern1 = preg_quote($searchfor1, '/');
$pattern2 = preg_quote($searchfor2, '/');

$pattern = "/^.*$pattern1.*\r*$pattern2.*\$/m";


if(preg_match_all($pattern, $text_page, $matches)){
   echo "Found matches:\n";
   echo implode("\n", $matches[0]);
}
else{
   echo "No matches found";
}
?>
4

2 に答える 2

1

を使ってみてください$pattern = '/\<li id\="menuSynchronizeSwitch"\>.*\<li id\="footerPrevWeek/si';。に注意してください/s。これにより、ドットが改行に一致します。これが原因であると思われます。

于 2012-10-10T06:48:35.013 に答える
0

各パターンを括弧でグループ化する必要があります

このような:

$pattern = "/(何らかのパターン)/";

$matches 配列を介して各グループを取得できます

于 2012-10-10T06:46:31.263 に答える