-5

解析エラー: 構文エラー、予期しない T_IF、')' が必要です

私は何をすべきか?

$show_smileys = true;

$find = array(
    '!\[h1\](.+)\[/h1\]!isU', 
    '!\[b\](.+)\[/b\]!isU', 
    '!\[i\](.+)\[/i\]!isU', 
    '!\[u\](.+)\[/u\]!isU', 
    '!\[strike\](.+)\[/strike\]!isU',
    '!\[spoiler\](.+)\[/spoiler\]!isU',
    '!\[url=(.*?)\](.*?)\[/url\]!is',
    '!\[player\](.+)\[/player\]!isU',
    '!\[quote=(.*)\]!siU',
    '!\[/quote\]!si'
    if ($show_smileys == true) {
    ,'@:p@is',
    '@:eek:@is',
    '@:rolleyes:@is',
    '@;\)@is',
    '@:o@is',
    '@:D@is',
    '@:\(@is',
    '@:mad:@is',
    '@:\)@is',
    '@:cool:@is'
    }
);
4

2 に答える 2

5

if内に条件を含めることはできませんarray。配列のプライマリ部分を次のように定義します。

$find = array(
    '!\[h1\](.+)\[/h1\]!isU', 
    '!\[b\](.+)\[/b\]!isU', 
    '!\[i\](.+)\[/i\]!isU', 
    '!\[u\](.+)\[/u\]!isU', 
    '!\[strike\](.+)\[/strike\]!isU',
    '!\[spoiler\](.+)\[/spoiler\]!isU',
    '!\[url=(.*?)\](.*?)\[/url\]!is',
    '!\[player\](.+)\[/player\]!isU',
    '!\[quote=(.*)\]!siU',
    '!\[/quote\]!si'
);

そして、条件を使用して残りをマージします。

if ($show_smileys == true) {
    $smiles = array(
        '@:p@is',
        '@:eek:@is',
        '@:rolleyes:@is',
        '@;\)@is',
        '@:o@is',
        '@:D@is',
        '@:\(@is',
        '@:mad:@is',
        '@:\)@is',
        '@:cool:@is'
    );
    $final = array_merge($find, $smiles);
}
于 2013-07-09T04:50:58.060 に答える