Как я могу избежать символов в href тега привязки

Я хочу убежать от трех персонажей, это

  1. одиночная кавычка (')
  2. двойная кавычка (")
  3. обратная косая черта ()

мое значение hreftest.html?key="test' me'"&event=3

Я хочу исправить это, как мы делаем в php позвонив addslashes function

<a href="test.html?key="test' me'"&event=3">test</a>

ПРИМЕЧАНИЕ: мне нужен динамический способ сделать это

3 ответа

Решение

Функция PHP для получения данных и генерации правильно закодированной строки запроса http_build_query, Затем вы можете поместить его в URL, а затем закодировать это с помощью htmlspecialchars вставить его в документ.

<?php

    $base = "test.html";
    $query_data = Array(
        "key" => "\"test' me'\"",
        "event" => 3
    );
    $url = $base . "?" . http_build_query($query_data);
    $html_safe_url = htmlspecialchars($url);
?>

    <a href="<?= $html_safe_url ?>">test</a>

Вы должны URL кодировать свои специальные символы.

А "станет%22

А 'станет% 27

A \ станет%5C

Ваш якорь должен быть

test.html?key=%22test%27%20me%27%22&event=3

Для получения дополнительной информации о кодировании URL перейдите по http://www.w3schools.com/tags/ref_urlencode.asp.

Возможно, закодировать URL

<a href="test.html?key=%22test'%20me'%22&event=3">test</a>

Проверьте эти URL-кодировки в w3schools

ДОБАВЛЕНО: var $key ="\"test'\""; var $event = "3"; print '<a href="test.html?key=' . urlencode($key) .'&event=' . urlencode($event) .'">test</a>';

Я точно не знаю, как php-строки экранируют специальные символы, такие как "но я полагаю, \" будет работать.

Другие вопросы по тегам