GVKun编程网logo

在php5中,如何阻止GET从(错误地)转换为数字?(php错误转异常函数)

17

本文将分享在php5中,如何阻止GET从(错误地)转换为数字?的详细内容,并且还将对php错误转异常函数进行详尽解释,此外,我们还将为大家带来关于Javascript:将字符串转换为数字?、MySQL

本文将分享在php5中,如何阻止GET从(错误地)转换为数字?的详细内容,并且还将对php错误转异常函数进行详尽解释,此外,我们还将为大家带来关于Javascript:将字符串转换为数字?、MySQL自动将字符串转换/转换为数字?、php – 如何将波斯语/阿拉伯数字从字符串转换为英文数字?、PHP-如何将字符串转换为包含数学运算的数字?的相关知识,希望对你有所帮助。

本文目录一览:

在php5中,如何阻止GET从(错误地)转换为数字?(php错误转异常函数)

在php5中,如何阻止GET从(错误地)转换为数字?(php错误转异常函数)

相对于php int64 limits,如果uri具有int64参数,如何防止GET将其错误地转换为数字并将其简单地保留为字符串?

http://some.com?id=1707541557936130

然后

echo $_GET['id'] => 1.7075415579361E+15

如何防止这种情况,并使$_GET [‘id’]为字符串1707541557936130?

$_GET现在的工作方式已无法使用.我需要自行解析$_SERVER [“ QUERY_STRING”].但是从不知道PHP什么时候会获取变量并再次错误地转换.

注意:afaik这将是32位而非64位PHP安装上的问题.

解决方法:

_GET / _POST / _COOKIE发出的所有内容都是字符串.除非您执行了一些强制将其解释为数字的操作,否则该数据不会转换为数字.

echo $_GET['id']; // echoes your big number
echo $_GET['id'] + 0; // forces an int conversion

Javascript:将字符串转换为数字?

Javascript:将字符串转换为数字?

有没有办法将变量从字符串转换为数字?

例如,我有

var str = "1";

我可以改成它吗?

var str = 1;

解决方法

尝试str = parseInt(str,10)

(注意:第二个参数表示用于解析的基数;在这种情况下,您的数字将被解析为十进制)

尽管如此,在JavaScript中使用术语“类型”非常松散.你能解释为什么你关心变量的类型吗?

MySQL自动将字符串转换/转换为数字?

MySQL自动将字符串转换/转换为数字?

MySQL是否会自动将字符串转换为数字值?
转换如何进行?

  • ‘1234’= 1234吗?
  • ‘1abc’= 1?
  • ‘文本’= 1?

给定那units.id是bigint类型的,该查询将如何解释?

SELECT table.* FROM table WHERE id=''text''

答案1

小编典典

前三个问题的答案是:是,是和否。

当字符串''text''转换为数字时,它将成为value 0

描述类型转换的文档在这里。

对于您的查询:

SELECT table.* FROM table WHERE id=''text'';

该摘录摘自文档:

在所有其他情况下,将参数作为浮点数(实数)进行比较。

换句话说,这实际上等效于:

WHERE id = 0.0

php – 如何将波斯语/阿拉伯数字从字符串转换为英文数字?

php – 如何将波斯语/阿拉伯数字从字符串转换为英文数字?

我有一个波斯语的网站.我网站用户的键盘通常是波斯语(或阿拉伯语).所以他们的密码有时候不会匹配.

我有一个用户名(手机号码)功能,将波斯语/阿拉伯数字转换为英语:

function convert_digits_to_en($entry){
    $fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
    return numfmt_parse($fmt, $entry);
}

如果条目包含所有数字,它将起作用.

即09123565498也将转换为09123565498.

问题是当条目包含字符和数字(如密码)时.即test0912.我需要将其转换为test0912.我当前的函数为该条目返回empty string.知道怎么解决它?

解决方法:

一个非正则表达式的解决方案是这样的:

function convert_digits_to_en($input)
{
  $arabic = ['۰' => 0, '۱' => 1];

  return strtr($input, $arabic);
}

echo convert_digits_to_en('test۱۰۰'); // test100

注意:您需要在数组中添加数字,我的波斯语/阿拉伯语不是那么好.

实例

Repl

阅读材料

strtr

PHP-如何将字符串转换为包含数学运算的数字?

PHP-如何将字符串转换为包含数学运算的数字?

这个问题已经在这里有了答案:            >            How to mathematically evaluate a string like “2-1” to produce “1”?                                    8个
我的意思是将“ 1 1”转换为:1 1.

我发现this answer表示您可以对字符串执行数学运算,如下所示:

$num = "10" + 1;

但是这里不一样,因为数学运算符在字符串内.

解决方法:

如果方程式非常简单,则可以使函数类似于以下内容:

function calcString($str)
{
    $patten = '/[\*\/\+-]/';
    preg_match($patten,$str, $operator);
    $arr = preg_split($patten,$str);

    switch($operator[0]){
    case '-':
        return $arr[0] - $arr[1];
    case '+':
        return $arr[0] + $arr[1];
    case '*':
        return $arr[0] * $arr[1];
    case '/':
        return $arr[0] / $arr[1];
    }
}

$num = "10+2";
echo calcString($num); // Output = 12
// Or
$num = "10-2";
echo calcString($num); // Output = 8
// Or
$num = "10*2";
echo calcString($num); // Output = 20
// Or
$num = "10/2";
echo calcString($num); // Output = 5

当然,您可以将函数放在某种帮助程序类中.

今天关于在php5中,如何阻止GET从(错误地)转换为数字?php错误转异常函数的介绍到此结束,谢谢您的阅读,有关Javascript:将字符串转换为数字?、MySQL自动将字符串转换/转换为数字?、php – 如何将波斯语/阿拉伯数字从字符串转换为英文数字?、PHP-如何将字符串转换为包含数学运算的数字?等更多相关知识的信息可以在本站进行查询。

本文标签: