-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

您不能ifarray. 像这样定义数组的主要部分:

$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 回答
0

不能放在if数组中间,只能用在允许语句的地方。这样做:

$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'
);

$smileys = array(
    '@:p@is',
    '@:eek:@is',
    '@:rolleyes:@is',
    '@;\)@is',
    '@:o@is',
    '@:D@is',
    '@:\(@is',
    '@:mad:@is',
    '@:\)@is',
    '@:cool:@is'
);

if ($show_smileys) {
    $find = array_merge($find, $smileys);
}
于 2013-07-09T04:52:45.447 回答