在PHP中将包含数字范围的GET变量转换为字符串

3

我有一个以这种格式表示的get变量:0-1499。 现在我需要将其转换为字符串,以便可以将该变量分解成数组。 为此,我尝试将其转换为字符串,但我没有获得任何输出。以下是示例代码:

$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

1
我假设上面的代码通常会包含一个 $_GET[]。你能否编辑代码以包括它? - Josh Ferrara
现在请用以下代码替换所有内容:var_dump($_GET['myvars']); 并告诉我们输出结果是什么。 - Lenny
explode函数的作用是在一个字符上分割字符串,所以您的代码按预期工作(它在“-”上将字符串分成两半)。如果您想要整个字符串,只需删除explode行即可。您希望从print_r中获得什么结果? - Lenny
4个回答

3

我有一个以这种格式表示的获取变量:0-1499

当你从URL中获取这个变量,比如:http://someurl.com/id=0-1499

$var = $_GET['id'];

这将最终转换为字符串,您不需要担心它。

说明

enter image description here

FYI:上面的插图使用了您在问题中提供的代码。我没有编写任何额外的代码。


1
您需要引号,先生。
像这样应该可以正常工作。
$mystring = "0-1499";
$mystring = explode("-",$mystring);
print_r($mystring);

没有引号时,它是数字/数学。

0减去1499等于负1499。


1
我相信他用0-1499替换了$_GET[]的值,就好像0-1499是在URL请求中一样。 - Josh Ferrara
@Josh 你说得对,$mystring 是一个 GET 变量。@Lenny 我不能给它添加 "" - Nitish
那么你在获取值时什么也没有得到。请按照以下步骤操作...使用var_dump($_GET)查看你得到了什么。 - Lenny
1
$_GET这一行是什么意思,也许错误就在这里?我发布的代码应该可以原样工作,它非常简单,所以我相信错误在于您的输入。 - Lenny

1
正如您正确指出的那样,它将值视为算术值,并忽略“0-”部分。如果您知道您将获得的值是某个n的“0-n”,那么您只需要这样做:
$mystring="0-".$n;
$mystring=explode("0-", $mystring);

但是这里的explode有点多余。因此,
$myarr=array();
$myarr[1]=strval($mystring);
$myarr[0]="0";

就是这样。


0

$mystring = 0-1499,而不是"0-1499"。 - Nitish
@Nitish,在字符串的情况下,你只能使用explode函数,因此无论如何都需要将输入转换为字符串。 - R R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接