我如何在锚标记的href中逃避charachters

时间:2016-06-08 06:57:55

标签: html html5 addslashes

我想要转义这三个字符

  1. 单引号(')
  2. 双引号(")
  3. 反斜杠()
  4. 我的href值是 test.html?key="test' me'"&event=3

    我想通过调用php

    来像addslashes function中那样修复它
    <a href="test.html?key="test' me'"&event=3">test</a>
    

    注意:我需要一种动态的方法

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

您必须对特殊字符进行URL编码。

A“将成为%22

A'将成为%27

A \将成为%5C

你的主播必须是

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

有关网址编码的详细信息,请转至http://www.w3schools.com/tags/ref_urlencode.asp

答案 2 :(得分:0)

可能会对网址进行编码

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

w3schools

查看这些网址编码

<强>增加: var $key ="\"test'\""; var $event = "3"; print '<a href="test.html?key=' . urlencode($key) .'&event=' . urlencode($event) .'">test</a>';

我不知道php字符串是如何逃避特殊字符的,但“我猜想”会起作用。