在 PHP 中将包含数字范围的 GET 变量转换为字符串
Posted
技术标签:
【中文标题】在 PHP 中将包含数字范围的 GET 变量转换为字符串【英文标题】:Convert a GET variable containing numbers range to string in PHP 【发布时间】:2013-12-23 09:39:12 【问题描述】:我有一个这种格式的 get 变量:0-1499
。现在我需要将它转换为字符串,以便我可以分解变量。为此,我尝试将其转换为 string ,但没有得到任何输出。这是示例代码:
$mystring = $_GET['myvars']; //equals to 0-1499;
//$mystring = (string)$mystring;
$mystring = strval($mystring);
$mystring = explode("-",$mystring);
print_r($mystring);
上面的print_r()
显示了一个数组Array ( [0] => [1] => 1499 )
。这意味着它会在转换为字符串之前计算$mystring
。如何将0-1499
作为整个字符串发送到explode
?
【问题讨论】:
我假设上面的代码通常会有一个$_GET[]
。您能否编辑代码以包含此内容?
现在将所有代码替换为:var_dump($_GET['myvars']);并告诉我们输出是什么。
explode 的功能是将字符串拆分为一个字符,以便您的代码按预期工作(它将字符串在“-”上拆分为两半)。如果你想要整个字符串,只需删除爆炸线。你想从 print_r 得到什么结果?
【参考方案1】:
您需要报价,先生。
应该像这样工作正常。
$mystring = "0-1499";
$mystring = explode("-",$mystring);
print_r($mystring);
没有引号是数字/数学。
0 减去 1499 = 负 1499
【讨论】:
我相信他用 0-1499 替换了$_GET[]
值,就好像 0-1499 在 URL 请求中一样。
@Josh 你是对的,$mystring
是一个 GET
变量 @Lenny 我不能添加 ""
到它
那么你在 get val 中什么也得不到。执行以下操作... var_dump($_GET) 看看你得到了什么。
$_GET 行是什么。也许这就是错误所在?我在上面发布的代码应该可以按原样运行,它是非常简单的代码,所以我确信错误在您的输入中。【参考方案2】:
Explode 用于字符串。http://php.net/explode
<?php
$mystring = "0-1499";
$a=explode("-",$mystring);
echo $a[0];
echo "<br>";
echo $a[1];
?>
看到它在这里工作http://3v4l.org/DEstD
【讨论】:
$mystring = 0-1499
不是"0-1499"
@Nitish 你只能在字符串的情况下使用explode,所以无论如何你需要将你的输入转换为字符串。【参考方案3】:
我有一个这种格式的变量:0-1499
当你从 URL 中获取这个变量时说..http://someurl.com/id=0-1499
$var = $_GET['id'];
这最终会转换成字符串,你不用担心。
插图
FYI : The above illustration used the code which you provided in the question. I didn't code anything extra.
【讨论】:
【参考方案4】:正如您正确指出的那样,它将值视为算术并忽略 0-
部分。如果您知道您将获得的值是 0-n
对于某些 n
,那么您需要做的就是:
$mystring="0-".$n;
$mystring=explode("0-", $mystring);
但是explode
这里有点多余。所以,
$myarr=array();
$myarr[1]=strval($mystring);
$myarr[0]="0";
你去。
【讨论】:
以上是关于在 PHP 中将包含数字范围的 GET 变量转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何在php中将非常小的、正常的、大的、科学的数字转换为字符串