如何在URL中接收回车并在回车中拆分回车

时间:2017-09-13 05:46:54

标签: php url

url = "http://localhost/reply.php?r=" & Now & "&msg=" & objMessageIn.Body & "&s=" & objMessageIn.Sender

PHP Code:
$ID = rawurlencode($_GET['msg']);
    $SENDER = $_GET['s'];
    $ID_upper = strtoupper($ID);


    print_r($ID_upper);


    $myArray = explode("%0a", $ID_upper);
    print_r($myArray);

我希望在URL中接收回车并将变量数据保存在拆分中。 例如: 在短信写作

365 
LES-12-5666
1
2
5
6

此SMS在GSM设备中接收并在PHP中获取URL。 当我收到URL时,PHP删除回车并显示数组,即 365LES-12-56661256 我想要这种类型的结果

array()
{
[0]=>365
[1]=>LES-12-5666
[2]=>1
[3]=>2
[4]=>5
[5]=>6
}

我想分开回车。但是PHP删除了回车符,所以我无法分割这个数组。

提前致谢

1 个答案:

答案 0 :(得分:0)

更新:

我已经重做了我的回答,这里的代码包含以下解释:

<?php

$url = urlencode("http://www.example.com?r=Now&msg='365\nLES-12-5666\n1\n2\n5\n6\n'&s=&me");

preg_match("/%26msg.+%27/",$url,$matches);

$ID = urldecode( $matches[0]);

$myArray = explode("\\n", $ID);
list(,$str) = explode("=",$myArray[0]);
$str = substr($str,1,-1);
$arr = explode("\n",chop($str));
var_dump($arr);

请参阅live code

注意:此答案仅关注查询字符串的“msg”部分的值。在现实生活中,可能有一个$ _GET变量,但在这种情况下,使用url作为查询字符串更容易。

url是urlencoded,允许传输编码为“%0A”的换行符。该代码使用正则表达式仅提取查询字符串的“msg”部分。然后该结果是urldecoded,它允许换行符显示为“\ n”。但是,在PHP中,有时必须引用换行符"\\n"作为一个使用explode()演示的实例,因为单个带引号的字符串中包含字符串值。该上下文中的换行符由两个斜杠组成,表示一个斜杠,它转义为“n”以代表换行符。

$ myArray包含一个元素,其值为字符串“msg ='365 \ nLES-12-5666 \ n1 \ n2 \ n5 \ n6 \ n'”。代码将字符串拆分为“=”以获取“msg”的值,该值实际上是字符串中包含的单引号字符串。代码使用substr()来提取内部字符串。为了避免不必要的空字符串,代码会切断终止换行符并将基于“\ n”字符的字符串分解为数组$ arr。