0

その問題で多くの時間を失い、本当に辞任しました..

create_function で preg_replace を使用すると、すべての結果が出力の最初に表示されますが、次のように、最初の一致の場所にある必要があります。

COMPONENT1 COMPONENT2 Maecenas malesuada elit lectus felis、malesuada ultricies。Curabitur et ligula。Ut Molestie a、Ultricies porta urna. Vestibulum commodo volutpat a、convallis ac、laoreet enim。Phasellus fermentum in、dolor。ペレンテスクファシリシス。Nulla imperdiet sit amet magna. Vestibulum dapibus、mauris nec malesuada 名声 ac turpis velit、rhoncus eu、luctus et interdum adipiscing wisi。

そして、次のようにする必要があります。

Maecenas malesuada elit lectus felis、malesuada ultricies。Curabitur et ligula。Ut Molestie a、Ultricies porta urna. Vestibulum commodo volutpat a、convallis ac、laoreet enim。Phasellus fermentum COMPONENT1 in、dolor。ペレンテスクファシリシス。Nulla imperdiet sit amet magna COMPONENT2 . Vestibulum dapibus、mauris nec malesuada 名声 ac turpis velit、rhoncus eu、luctus et interdum adipiscing wisi。

function getcomponent($source){
   $get = getXML(datadir.$source.'.xml')->content;
   $getcomp = create_function("",' ?>'.$get.'<?php ');
   $getcomp();
}

preg_match_all("/\[\#PHP (.*?) \#\]/",$content,$content3);

foreach ($content3[1] as $value) { //$content3[0]
    $content2 = preg_replace("/\[\#PHP ".$value." \#\]/",getcomponent($value),$content);
    $content = $content2;
}

私はすべてのヒントにとても感謝しています。乾杯!

4

1 に答える 1