php 字符串怎么转换成数值

PHPz
发布: 2023-04-04 10:42:02
原创
1387人浏览过

php是一种流行的服务器端编程语言,被广泛用于web开发和数据处理,其内置函数和特性非常丰富。当我们处理用户输入或从外部来源获取数据时,经常需要将字符串转换为数值,以便进行计算和比较操作。本文将介绍php字符串转换成数值的方法和技巧,包括类型转换函数、字符串操作函数和正则表达式。让我们开始吧!

  1. PHP类型转换函数

PHP提供了几个内置的类型转换函数,用于将不同类型的值转换为数值类型。这些函数可以处理整数、浮点数、布尔值和日期时间等不同的数据类型。下面是一些常用的类型转换函数:

(1) intval()函数

intval()函数用于将字符串转换为整数。如果字符串以数字开头,那么函数会将其转换为整数类型;如果字符串以非数字字符开头,那么函数返回0。intval()函数还可以指定进制和舍去小数部分。

例如:

立即学习PHP免费学习笔记(深入)”;

$str = '123';
$int = intval($str); // $int的值为123
$str = 'abc123';
$int = intval($str); // $int的值为0
$str = '123.45';
$int = intval($str); // $int的值为123
$str = '0x1a';
$int = intval($str, 16); // $int的值为26
登录后复制

(2) floatval()函数

floatval()函数用于将字符串转换为浮点数。与intval()函数类似,如果字符串以数字开头,那么函数会将其转换为浮点数类型;如果字符串以非数字字符开头,那么函数返回0。

例如:

立即学习PHP免费学习笔记(深入)”;

$str = '3.14';
$float = floatval($str); // $float的值为3.14
$str = 'abc.123';
$float = floatval($str); // $float的值为0
登录后复制

(3) boolval()函数

boolval()函数用于将字符串转换为布尔值。如果字符串是'0'、''、'false'、'null'或者空数组,那么函数返回false;否则返回true。boolval()函数也可以将其他类型的值转换为布尔值。

例如:

立即学习PHP免费学习笔记(深入)”;

$str1 = '0';
$str2 = 'false';
$str3 = 'null';
$bool1 = boolval($str1); // $bool1的值为false
$bool2 = boolval($str2); // $bool2的值为false
$bool3 = boolval($str3); // $bool3的值为false
$str4 = 'abc';
$bool4 = boolval($str4); // $bool4的值为true
$int = 123;
$bool5 = boolval($int); // $bool5的值为true
登录后复制

(4) strtotime()函数

strtotime()函数用于将日期时间字符串转换为Unix时间戳。Unix时间戳是从1970年1月1日0时0分0秒到当前时间的秒数。函数的参数可以是任何格式的日期时间字符串,如'2019-01-01'、'2020-01-01 12:00:00'等。如果字符串无法识别为日期时间格式,函数返回false。

例如:

立即学习PHP免费学习笔记(深入)”;

$str = '2020-01-01 12:00:00';
$timestamp = strtotime($str); // $timestamp的值为1577875200
登录后复制
  1. PHP字符串操作函数

除了类型转换函数,PHP还提供了许多字符串操作函数,用于处理字符串中的数字部分。这些函数可以实现去除字符串中的非数字部分、截取指定长度的数字、判断字符串是否为数字等功能。下面是一些常用的字符串操作函数:

(1) preg_replace()函数

Perl学习手札 chm版
Perl学习手札 chm版

Perl学习手札是台湾perl高手写的一篇文章,特打包为chm版,方便大家阅读。 关于本书 1. 关于Perl 1.1 Perl的历史 1.2 Perl的概念 1.3 特色 1.4 使用Perl的环境 1.5 开始使用 Perl 1.6 你的第一个Perl程序 2. 标量变量(Scalar) 2.1 关于标量 2.1.1 数值 2.1.2 字符串 2.1.3 数字与字符串转换 2.2 使用你自己的变量 2.3 赋值 2.3.1 直接设定 2.3.2 还可以这样 2.4 运算 2.5 变量的输出/输入 2.

Perl学习手札 chm版 0
查看详情 Perl学习手札 chm版

preg_replace()函数是PHP中基于正则表达式的字符串替换函数,可以用于去除字符串中的非数字部分。我们可以使用正则表达式匹配所有非数字字符,并将其替换为空。

例如:

立即学习PHP免费学习笔记(深入)”;

$str = 'abc123xyz456';
$str = preg_replace('/\D/', '', $str); // $str的值为'123456'
登录后复制

在正则表达式中,'\D'表示非数字字符,加上'/'表示将其转义。使用preg_replace()函数和正则表达式将非数字字符替换为空字符串,即可得到只包含数字的字符串。

(2) substr()函数

substr()函数用于截取字符串中指定位置和长度的子串。我们可以用该函数截取字符串中的数字部分,从而进行类型转换。

例如:

立即学习PHP免费学习笔记(深入)”;

$str = 'abc123xyz';
$str = substr($str, 3, 3); // $str的值为'123'
$int = intval($str); // $int的值为123
登录后复制

(3) is_numeric()函数

is_numeric()函数用于判断字符串是否为数字。如果字符串是整数、浮点数或科学计数法表示的数字,那么函数返回true;否则返回false。

例如:

立即学习PHP免费学习笔记(深入)”;

$str1 = '123';
$str2 = '3.14';
$str3 = '1e10';
$str4 = 'abc';
$bool1 = is_numeric($str1); // $bool1的值为true
$bool2 = is_numeric($str2); // $bool2的值为true
$bool3 = is_numeric($str3); // $bool3的值为true
$bool4 = is_numeric($str4); // $bool4的值为false
登录后复制
  1. PHP正则表达式

正则表达式是一种灵活而强大的文本匹配工具,可以用于处理各种格式的字符串。PHP内置了PCRE库,支持Perl兼容的正则表达式语法。我们可以使用正则表达式匹配字符串中的数字部分,并进行类型转换。

例如:

立即学习PHP免费学习笔记(深入)”;

$str1 = 'abc123xyz';
$str2 = '3.14E2';
$pattern = '/\d+/';
preg_match($pattern, $str1, $matches); // $matches的值为array('123')
preg_match($pattern, $str2, $matches); // $matches的值为array('314')
$int1 = intval($matches[0]); // $int1的值为123
$float1 = floatval($matches[0]); // $float1的值为123.0
$float2 = floatval($matches[0]) * 100; // $float2的值为12300.0
登录后复制

在正则表达式中,'\d'表示数字字符,'+'表示匹配一个或多个数字字符。我们使用preg_match()函数和正则表达式匹配字符串中的数字部分,将匹配结果存入$matches数组中;然后使用intval()函数和floatval()函数将匹配结果转换为整数和浮点数类型。此外,我们还可以对匹配结果进行进一步处理,如乘以100得到浮点数。

小结

本文介绍了PHP字符串转换成数值的方法和技巧,包括类型转换函数、字符串操作函数和正则表达式。这些方法可以轻松地处理各种类型的字符串,如整数、浮点数、布尔值和日期时间等。最后,我们还介绍了如何使用正则表达式匹配字符串中的数字部分,并进行类型转换。掌握这些技巧,可以让你在PHP编程过程中更加得心应手,提高开发效率。

以上就是php 字符串怎么转换成数值的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号