Использование одинарных кавычек (экранирование) в PHP

Я пишу HTML-код внутри тегов PHP. Уже написано стиль привязки тегов, и если я изменю некоторые части, это повлияет. Поэтому я пытаюсь написать свой код внутри события onclick. Вот мой код

<div> <span style='cursor:pointer;' onclick='window.location.href='www.google.com'> ".$array1[$i] ['name']." </span> </div> 

Если щелкнуть этот массив [имя], он должен перейти на google.com. Проблема заключается в одинарных кавычках, которые я использовал для упоминания моего URL. Как избежать строк в этом событии?

Related of "Использование одинарных кавычек (экранирование) в PHP"

  $strLocation = 'http://www.google.com'; $strLink = "<span onclick='window.location.href=&#39;".$strLocation."&#39;'>HI there</span>"; (or) $strLink = '<span onclick="window.location.href=\''.$strLocation.'\'">HI there</span>'; print $strLink; 

Использование &#39; является специальным символом 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