0

すべての値に 1 行のコードが含まれる連想配列があります。それらをforeach()ループで表示します。それらすべてを強調表示するにはどうすればよいですか?

機能を見つけましたhighlight_string()。はい、動作しますが、コードを囲む PHP タグのみです。問題は、これらのタグを表示したくないことです。これは配列であるため、すべての値にタグを追加する必要があります。これにより、結果が見苦しくなります。

配列の先頭と末尾にタグを追加しても機能しません。highlight_string()配列全体 (foreach()ループを囲む) には使用しません。

また、PHP タグを削除すると、強調表示が機能しなくなります。

サードパーティのアプリケーションを含めずにこれを行う方法はありますか?

例:

これは配列です:

$var = array(0 => 'for($i=0;$i<5;$i++)', 1 => '// do something', 2 => '$i++', 3 => '}');

これは、コード行を次々に表示する方法です。

foreach($var as $line) 
{
   echo $line . '<br>';
}

そして、それらを強調表示されたコードとして表示したいと思います。

4

2 に答える 2

3

これはうまくいけばここで役立つでしょう:

$code_array = array(
    '<?php',
    'echo "Hello";',
    '?>'
);

echo highlight_string(implode("\r\n", $code_array), TRUE);

追加:コードサンプルを追加したので、これも機能します:)

$var = array(0 => 'for($i=0;$i<5;$i++)', 1 => '// do something', 2 => '$i++', 3 => '}');
$var = array_merge(array('<?php'), $var, array('?>'));
echo highlight_string(implode("\r\n", $var), TRUE);
于 2012-11-24T11:35:57.053 に答える
1

GeSHiを使用してみてください。多くの Web サイトやオープン ソース プロジェクトで使用されています。

于 2012-11-24T11:35:50.410 に答える