これが私が達成しようとしていることです。Magento ウェブショップの CMS エディターには、<!-- pagebreak -->
タグを挿入するためのボタンがあります。これを使用して、続きを読む機能を作成したいと思います。これを行うには、このタグを検索/置換すると思いました。
タグ内を検索したいので<p>
、このタグを好きなだけ使ってもらいたいです。
これが私の元の HTML だとします。
<p>This is my example text, but<!-- pagebreak --> this should be readable after 'click more'<!-- pagebreak --> with even more click more possible</p>
私はそれをこのようなものに変換したいと思います.最初のものは達成するのが最も簡単だと思います.おそらくwhileループでpreg_replaceを行うことでしょうか?2番目のものはおそらくよりクリーンで優れたhtmlです(ネストが少ない)
<p>This is my example text, but <a href="#" onClick='#'>read more</a><div class='hiddenreadmore' id='hiddenreadmore-1'> this should be readable after 'click more'<a href="#" onClick='#'>read more</a><div class='hiddenreadmore' id='hiddenreadmore-2'> with even more click more possible</div></div></p>
また
<p>This is my example text, but <a href="#" onClick='#'>read more</a><div class='hiddenreadmore' id='hiddenreadmore-1'> this should be readable after 'click more'<a href="#" onClick='#'>read more</a></div><div class='hiddenreadmore' id='hiddenreadmore-2'> with even more click more possible</div></p>
だから私はこれを思いつきましたが、1つの交換でそれを行う方法があるはずだと思います.
$pattern = '#\<p\>(.+?)\<\!-- pagebreak --\>(.+?)\<\/p\>#s';
$count = true;
while ($count) {
$text = preg_replace($pattern, '<p>$1 <a href="#">read more</a><div class="hidden">$2</div></p>', $text, -1, $count);
}