$_GET[“param”]的替代项,用于保留%0A换行符


Alternative to $_GET["param"] to keep %0A line breaks?

我通过目标网页使用的URL从HTML表单发送信息。

其中一个信息位是来自textarea的用户定义消息,可能带有换行符。我已将换行符编码为%0A

我想使用$var = $_GET["param"]来检索消息并存储在一个变量中,但$_GET当然会剥离%0A并用空格替换,这会扼杀用户格式化。

有没有什么方法可以将其转换为变量%0A,或者转换为<br>

谢谢你的帮助。


更新:这是代码

示例URL:

http://blahblahblah.com/thankyou.php?type=e&gift=1&remail=simon@shokstudio.com&rname=Simon&demail=simon@shokstudio.com&dname=Simon&msg=e.g.%20Dear%20Bob,%20%0A%0AMerry%20Christmas%20and%20a%20Happy%20New%20Year%20to%20you.%20I%20hope%202014%20brings%20you%20much%20joy%20and%20happiness%20to%20you%20and%20your%20loved%20ones.%0A%0ABest%20Wishes,%0A%0ADave%0A%0A%20

PHP处理URL:

         <?php
            if ( "e" == $_GET["type"]) :
                $gift_type = "Ecard";
            else :
                $gift_type = "PDF";
            endif;
            $gift_number = $_GET['gift'];
            $donor_name = $_POST['dname'];
            $donor_email = $_GET['demail'];
            $recipient_name = $_POST['rname'];
            $recipient_email = $_GET['remail'];
            $custom_text = $_POST['msg'];
            echo $_POST['msg'];

使用POST而不是GET。这很好用。

form.php

<form method="POST" action="my_form.php">
    <input type="text" name="param">
    <input type="submit">
</form>

my_form.php

<?php
echo $_POST['param'];
?>

您可以使用nl2br或str-replacement或preg_replace。但使用POST而不是GET将是一个更好且安全的解决方案。

由于您使用的是带有文本区域的web表单,我建议使用POST方法,然后使用$_POST(或$_REQUEST)变量。所有输入的数据都应该在那里,带有输入和所有特殊字符。