1

私が達成したいことを説明するのは簡単ですが、私(PHPの初心者)にとって、実際にそれを達成するのは難しいです。基本的に私が欲しいのはBBCodesをできるだけ簡単にそして短くすることです。のような配列の代わりに

$filter=array(
    '[b]'=>'<b>',
    '[/b]'=>'</b>',
    '[i]'=>'<i>',
    '[/i]'=>'</i>');

この配列が欲しいのですが:

$filter=array('b','i');

次に、私が到達できない部分は、その配列内の文字列が角かっこで囲まれているかどうかをチェックする場所です(そして、私が理解できないもう1つのことは、角かっこ内もチェックできることです/)次に、それらのブラケットを。に置き換えます<>。だから、[b]になり<b>[/b]になり</b>ます。

編集:解決策

function bbcode($string) {
    $filter=array('b','i','u');
    foreach ($filter as $filter) {
        $string=str_replace('['.$filter.']','<'.$filter.'>',$string);
        $string=str_replace('[/'.$filter.']','</'.$filter.'>',$string);
        }
    return $string;
    }
4

1 に答える 1

0
$filter = array('b','i');

$newfilter = array();
foreach ($filter as $tag) {
  $newfilter["[$tag]"] = "<$tag>";
  $newfilter["[/$tag]"] = "</$tag>";
}

これで、を使用できます$newfilter

于 2011-02-13T04:53:29.317 に答える