Часто при написании PHP я буду выводить некоторый HTML как это –
echo "<a href="../" title="link title">".$link_text."</a>";
Очевидно, это не будет анализировать, поскольку мне нужно избежать двойных кавычек в атрибутах элемента <a>
. Есть ли регулярное выражение, которое быстро сделало бы это вместо того, чтобы я вручную добавлял обратную косую черту?
Еще одно: регулярное выражение не должно избегать двойных кавычек за пределами тега (например, где я $link_text
переменную $link_text
.
Есть идеи?
Вместо этого следует использовать одиночные кавычки:
echo '<a href="../" title="link title">' . $link_text . '</a>';
Решения, которые я могу придумать (не без побега):
Одиночные цитаты
echo '<a href="../">' . $link_text. '</a>';
Использовать двойные кавычки
echo "<a href='../'>$link_text</a>";
Sprintf
echo sprintf('<a href="../">%s</a>', $link_text);
Использовать HEREDOC
echo <<<EOF <a href="../">$link_text</a> EOF;
Использовать механизм шаблонов, например smarty
Выход из PHP-режима :
?><a href="../"><?php echo $link_text ?></a><?php // other code...
BTW, обязательно используйте htmlspecialchars()
$link_text
переменной $link_text
или у вас будет отверстие для безопасности XSS.
Использовать (этот синтаксис не беспокоится о кавычках и т. Д.)
echo <<<EOT <a href="../" title="link title">$link_text</a> EOT;
Я настоятельно рекомендую использовать шаблоны вместо того, чтобы пытаться создавать строки.
В сыром PHP:
<a href="../" title="link title"><?php echo $link_text; ?></a>
используйте одинарные кавычки или используйте heredoc . Я бы предпочел последнее.
Я думаю, вы можете использовать
http://www.example.com/.../Learning-Tutorials/ACTIVE-USER-ACCOUNT/verify.php?email='.$email.'&hash='.$hash.' "<a href="//www.example.com/.../Learning-Tutorials/ACTIVE-USER-ACCOUNT/verify.php?email="$email&hash=$hash>Click Here to Active</a>"
попробуй.