Я пытался объединить переменные php в javascript, я читал на многих форумах, что сложно сделать комбинацию обоих, но это возможно (согласно ответам). Моя проблема заключается в следующем:
В моем php-коде у меня есть переменная с именем $images строки типа, которую я хотел бы использовать в javascript, например:
<?php
$imagenes = "imagen1.pngimagen2.pngimagen3.png";
?>
<script type="text/javascript">
var img = <?php echo $imagenes;?>
</script>
Я не знаю, можно ли сделать что-то вроде кода, который я ввел, какие-либо предложения?
Привет и спасибо.
Эффективно. Передача значения переменных из
PHP
ajavascript
тривиальна (обратите внимание на значение, а не на ссылки ;-). Как вам также было сказано. Вы должны иметь в виду, что если это строковый тип, вы должны сделать это следующим образом:Если случайно вы хотите передать значение типа
array
... что я думаю, потому что значение$imagenes
... не имеет для меня особого смысла, вы должны сделать это следующим образом:И если вы хотите передать
array
fromPHP
to aarray
fromjavascript
:Есть много способов выполнить эту работу, но во всех случаях вы должны быть особенно осторожны с экранированием кавычек. Без этого в приложении могут возникнуть нежелательные эффекты.
Мы могли бы использовать
addslashes()
для выполнения задания:Этот метод не будет полностью безопасным, поскольку несоответствия в наборе символов (не использовать
utf-8
) могут привести к закрытию тега</script>
, вызывая проблемы с безопасностью ( XSS ).Для повышения безопасности и поддержки произвольных данных (классы, массивы и т. д.) лучше использовать
json_encode()
:Если
$prueba
это строка символов, она заключаетjson_encode
свое содержимое в кавычки и избегает любых кавычек внутри нее. Если это массив, он будет использовать[]
или использовать{}
для классов/объектов и т.д.TL;DR (слишком длинно, читать не нужно)
Если у вас могут возникнуть проблемы или несоответствия в кодировке символов (возвращаемая заголовками сервера не совпадает с указанной в HTML или вы просто не используете
utf-8
) рекомендую добавить параметр aJSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS
следующимjson_encode
образом:Безопасность функции
json_encode()
более чем достаточна, если все правильно закодировано вutf-8
. RFC указывает, что он используется по умолчанию,UTF-8
хотя егоUTF-16
также можно использовать , поэтому, если смешиваются разные кодировки символов, кавычка для определенного набора символов может быть неправильно экранирована.Конечно, вы можете отправлять информацию с
PHP
наJavascript
без проблем. На самом деле то, как вы это делаете, правильно, потому чтоPHP
это серверный язык иJavascript
клиентский язык, у вас не будет никаких проблем, потому что весь кодPHP
выполняется доJavascript
.На самом деле это довольно распространено в сочетании
PHP
сJavascript/jQuery
и не считается плохой практикой.Это очень легко достичь
как вы можете видеть, нет никаких осложнений, это то же самое, что использовать их в html, используя
echo