Я пишу HTML-код внутри тегов PHP. Уже написано стиль привязки тегов, и если я изменю некоторые части, это повлияет. Поэтому я пытаюсь написать свой код внутри события onclick. Вот мой код
<div> <span style='cursor:pointer;' onclick='window.location.href='www.google.com'> ".$array1[$i] ['name']." </span> </div>
Если щелкнуть этот массив [имя], он должен перейти на google.com. Проблема заключается в одинарных кавычках, которые я использовал для упоминания моего URL. Как избежать строк в этом событии?
$strLocation = 'http://www.google.com'; $strLink = "<span onclick='window.location.href='".$strLocation."''>HI there</span>"; (or) $strLink = '<span onclick="window.location.href=\''.$strLocation.'\'">HI there</span>'; print $strLink;
Использование '
является специальным символом HTML, который остается невидимым во время операций с строкой и будет отображаться только в браузере.
Использование \
просто экранирует строку.
Я думаю, что у вас уже есть код. Однако немного больше объяснений:
(i) Существует два типа котировок: одинарные кавычки («…») и двойные кавычки («…»). Теперь, когда вы используете один стиль цитаты в качестве внешней цитаты, вы можете использовать другой стиль цитаты внутри этого, и вам не нужно избегать какой-либо цитаты.
например, эхо «Он сказал:« Какой прекрасный день »; output: Он сказал: «Какой прекрасный день»,
echo "She said 'that is true'";
вывод: она сказала: «Это правда»
(ii) Однако во втором случае, если вы хотите вывести -> Она сказала, что это правда. Вам нужно избежать цитаты. В escape-символе php default символ \
Как вы уже отметили, кавычки имеют особое значение для PHP. Чтобы удалить особый смысл, мы «убегаем» от персонажа.
Поэтому вам нужно написать: echo «Она сказала», что это правда »;
или
echo "She said \"that's true\"";
Это основная концепция спасения. Но обратите внимание, что в некоторых случаях два типа котировок имеют разное значение. Двойная кавычка выполняется в содержимом внутри них, тогда как одна цитата предполагает, что содержимое внутри них не должно оцениваться.
т.е.
$i = 1; echo "$i"; // output: 1 echo '$i'; // output: $i
Помните об этом при написании кодов.
Почему вы используете одиночные кавычки в первую очередь?
<div> <span style="cursor:pointer;" onclick="window.location.href='www.google.com'"> <?php echo $array1[$i]['name'] ?> </span> </div>
Это все, что вам нужно; нет необходимости усложнять вещи больше, чем это 🙂
За вас комментарий, вы используете это внутри echo
. Я думаю, что это немного глупо, но в этом случае используйте синтаксис heredoc
echo <<<EOD <div> <span style="cursor:pointer;" onclick="window.location.href='www.google.com'"> <?php echo $array1[$i]['name'] ?> </span> </div> EOD;
Используйте json_encode
и он будет надежно управлять побегом для вас.
<? $exampleA = "Escape this 's"; ?> <? $exampleB = 'Escape this "s'; ?> <script> var a = <?= json_encode($exampleA) ?> // result: var a = "Escape this 's" var b = <?= json_encode($exampleB) ?> // result: var b = "Escape this \"s" </script>
Найдено здесь: https://stackoverflow.com/a/6269254/922522