我通过目标网页使用的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)变量。所有输入的数据都应该在那里,带有输入和所有特殊字符。