解析错误:语法错误,意外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'
}
);
答案 0 :(得分: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);
}
答案 1 :(得分: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);
}