0

<!--dle_image_begin:http://some_url.com/uploads/posts/2012-12/1.png|--><img src="some_url.com/uploads/posts/2012-12/1.png" alt=" " title=" " /><!--dle_image_end--> bla bla bla bla <!--dle_image_begin:http://some_url.com/image/2.png|--><img src=" some_url.com/uploads/image/2.png" alt=" " title=" " /><!--dle_image_end--> bla bla bla <!--dle_image_begin:http://some_url.com/asfafsdsaf|- -><img src="some_url.com/asfafsdsaf" alt=" " title=" " /><!--dle_image_end-->

<!--dle_image_begin: ... <!--dle_image_end-->ですべてをキャッチする方法はprey_match_all? dle_image_beginandの間に何があるかは実際には問題ではありませんdle_image_end-それぞれを配列に入れる必要があります(dle_image_beginanddle_image_endタグを含む)。

私は試しました: と のようなものです<!--dle_image_begin:.*([^|]dle_image_end-->)<!--dle_image_begin:.*?(<--dle_image_end-->)、まだそれがどのように機能するのか理解できません... 誰かがこれについてヒントを与えることができますか?

4

2 に答える 2

0

この正規表現を使用するだけです

/(<!--dle_image_begin.*?dle_image_end-->)/

preg_match_all( '/(<!--dle_image_begin.*?dle_image_end-->)/', $code, $matches )$matchesすべての一致が含まれます。

それは、その間の何かで始まり、<!--dle_image_beginそれで終わるパターンに一致します。dle_image_end-->括弧は、一部だけでなく、表現全体に一致させるために必要です。

于 2013-01-07T22:22:17.503 に答える
0

There are two problems. <--dle_image_end should be <!--dle_image_end and you can leave out the parens:

<?php

  $source = <<<SOURCE_HEREDOC
<!--dle_image_begin:http://some_url.com/uploads/posts/2012-12/1.png|--><img src="some_url.com/uploads/posts/2012-12/1.png" alt="" title=""  /><!--dle_image_end--> bla bla bla bla <!--dle_image_begin:http://some_url.com/image/2.png|--><img src="some_url.com/uploads/image/2.png" alt="" title=""  /><!--dle_image_end--> bla bla bla <!--dle_image_begin:http://some_url.com/asfafsdsaf|--><img src="some_url.com/asfafsdsaf" alt="" title=""  /><!--dle_image_end-->
SOURCE_HEREDOC;

  $regex = "/<!--dle_image_begin:.*?--dle_image_end-->/";

  preg_match_all($regex,trim($source),$matches);

  echo "\n";
  foreach($matches as $match) {
    foreach($match as $part) {
      echo "\n";
      echo "  -> ".$part;
      echo "\n";
    }
  }
  echo "\n";
?>

output:

  -> <!--dle_image_begin:http://some_url.com/uploads/posts/2012-12/1.png|--><img src="some_url.com/uploads/posts/2012-12/1.png" alt="" title=""  /><!--dle_image_end-->

  -> <!--dle_image_begin:http://some_url.com/image/2.png|--><img src="some_url.com/uploads/image/2.png" alt="" title=""  /><!--dle_image_end-->

  -> <!--dle_image_begin:http://some_url.com/asfafsdsaf|--><img src="some_url.com/asfafsdsaf" alt="" title=""  /><!--dle_image_end-->
于 2013-01-07T22:16:32.997 に答える