在 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 中将数字转换为月份名称

在r中将多个列从字符转换为数字格式

如何在php中将非常小的、正常的、大的、科学的数字转换为字符串

在PHP中将字符串[基本上是逗号分隔的数字]转换为整数的最佳方法[重复]

php自定义函数及内部函数