最も近い文の後/前に、テキストとして表示されるHTML文字列の中央。
例:
$str = 'First sentence. Second sentence! <a title="Hello. World">
Third sentence. </a> Fourth sentence. Fifth sentence?';
$middle = strlen($str) / 2;
私がしたことは、、、、など.
のすべての停止文字にキーワードを追加することですが、HTMLタグの外側の文字にのみ追加します。!
?
$str = 'First sentence. Second sentence! <a title="Hello. World">
Third sentence. </a> Fourth sentence. Fifth sentence?';
$str = preg_replace_callback("/(\.|\?|\!)(?!([^<]+)?>)/i", function($matches){
return $matches[1].'<!-- stop -->';
}, $str);
これにより、$strは次のようになります。
First sentence.<!-- stop --> Second sentence!<!-- stop --> <a title="Hello.
World"> Third sentence.<!-- stop --> </a> Fourth sentence.<!-- stop --> Fifth
sentence?<!-- stop -->
<!-- stop -->
では、その位置に最も近いサブ文字列を見つけて、その$middle
前にテキストを挿入するにはどうすればよいですか?
$matches[1]
文字列全体に対するpreg_replaceコールバック内の位置を見つける方法はありますか?そうすれば、$middleと比較できます