文字列から文字を置き換えて他のものを入れようとしましたが、これはpreg_replace_callback関数を使用するため、問題はこの関数が元のテキストの順序を変更し、異なる結果を表示することです
たとえば、文字列が次の場合:
皆さん、こんにちは [1-2-3] これは 1 つのテストです [4-5-6-7-8] --- > 元のテキスト
スクリプトは [ ] を検索し、このコンテンツを [ ] で他のテキストから分離しますが、ここに置くように表示します。
1-2-3 4-5-6-7-8 こんにちは皆さんこれは 1 つのテストです --- > 悪い結果
正しい順序の場合、[ ] のない最初の順序です。
みなさん、こんにちは 1-2-3 これは 1 つのテストです 4-5-6-7-8
私が作成するスクリプト:
<?php
$text = " This is a test [gal~ruta~100~100] This is other test [gal~ruta2~100~100]";
function gal($matches)
{
global $text;
$exp=explode("~",$matches[1]);
$end=str_replace($matches[1],$a,$text);
if ($exp[0]=="gal")
{
$a="".$exp[1]."".$exp[2]."".$exp[3]."";
echo $a;
}
}
echo preg_replace_callback(
"/\[(.*?)\]/",
"gal",
$text);
?>
みんな助けてくれてありがとう