2013-11-06 4 views
0

Я пытаюсь написать html-код в выражении php echo, но я продолжаю терпеть неудачу.Использование html в выражении php echo

echo "<option value='$_GET['b']'>$_GET['b']</option>"; 

ошибка:?.

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in .../web_info.php on line 11 

Я имею в виду, когда я должен использовать "и когда» каковы правила, которые настолько запутанным

+0

XSS ... не SQL. –

ответ

2

Оберните переменные в фигурные скобки:

echo "<option value='{$_GET['b']}'>{$_GET['b']}</option>"; 

Или используйте sprintf():

echo sprintf("<option value='%s'>%s</option>", $_GET['b'], $_GET['b']); 
+0

Большое вам спасибо! Я приму ваш ответ как можно скорее. –

2

попробовать это:

echo "<option value='{$_GET['b']}'>{$_GET['b']}</option>"; 

Проблема заключалась в цитатах и ​​скобках. Иногда вам нужно обернуть переменные в фигурные скобки, иначе парсер PHP не знает, когда t o начать и остановить переменную. Он смешивается с остальной частью строки.

+0

Я не уверен, почему нисходящий? Мой ответ был даже технически первым? –

+1

Ни я .... +1 – DonCallisto

+0

Возможно, какой-то массовый спутник. Мой ответ тоже был опущен. :) –

0
echo("<option value='" . $_GET['b'] . "'>" .$_GET['b'] . "</option>"); 
0

Просто вы можете написать это (DEMO)

echo "<option value='$_GET[b]'>$_GET[b]</option>"; 

Или это(DEMO)

echo "<option value='" . $_GET['b'] . "'>" . $_GET['b'] . "</option>"; 

Подробнее on manual.

0
echo "<option value='".$_GET['b']."'>".$_GET['b']."</option>"; 

Проблема заключается в одинарные кавычки в значение атрибута, который вы использовали для времени и синтаксический анализатор не может понять, где конец.

0

В дополнение к другим ответам, менее известный метод заключается в использовании запятых (так PHP не нужно делать каких-либо конкатенацию):

echo '<option value="', $_GET['b'], '">', $_GET['b'], '</option>'; 
0
printf("<option value=\"%s\">%s</option>", $_GET['b'], $_GET['b']);