替换“<”和“>”在PHP中的字符串中

时间:2016-05-11 11:40:07

标签: php

我希望创建一个打印出源代码的链接,我不知道为什么更换标签(“<”和“>”)将无效,如果有解决方案的话。

<?php
    $key = "";
    if(isset($_REQUEST["key"])){
    $key = $_REQUEST["key"];
}

$code = '

<html>
    <head>
    <meta charset="utf-8"/>
    <title>Test</title>
    <style>
        h1 {
            text-align: center;
        }
        h4 {
            text-align: left;
        }
    </style>
    </head>
    <body>
        <a href="?key=y"> <h1> Source code </h1> </a>
    </body>
</html>

    ';

    echo($code);

    if($key == "y"){
        str_replace("<", "&#60;", $code);
        str_replace(">", "&#62;", $code);
        echo("<h4>" . $code . "</h4>");
    }
?>

感谢任何帮助。

4 个答案:

答案 0 :(得分:1)

你不保存str_replace函数的结果

field

答案 1 :(得分:0)

  1. 正如Thamaizhan已经说过的那样,您应该使用htmlentities而不是手动替换这两个字符。

  2. 忽略#1,您的具体问题是由于未在任何地方分配str_replace的结果而导致的。您需要$code = str_replace(......, $code);

答案 2 :(得分:0)

$code = str_replace("<", "&lt;", $code);
$code = str_replace(">", "&gt;", $code);

答案 3 :(得分:0)

 if($key == "y"){
        echo("<h4>" . htmlspecialchars($code) . "</h4>");        
    }