Учитывая этот код PHP:
<a onclick="javascript:window.location.href='<?php echo $url;?>'"
Что, если есть '
в $ url?
Я попытался использовать json_encode($url)
но он не сможет справиться с этим.
json_encode
будет работать. Вы просто должны использовать его правильно:
<a onclick="javascript:window.location.href=<?php echo htmlspecialchars(json_encode($url)); ?>">
Это будет работать, поскольку json_encode
уже возвращает выражение JavaScript с кавычками. И htmlspecialchars
необходимо, чтобы избежать возможных метасимволов HTML.