当前位置: 首页 > news >正文

7个鲜为人知却超实用的PHP函数

PHP有许多内置函数,其中大多数函数都被程序员广泛使用。但也有一些函数隐藏在角落,本文将向大家介绍7个鲜为人知,但用处非常大的函数。 没用过的程序员不妨过来看看。


1.highlight_string()

当需要在一个网站中展示PHP代码时,highlight_string()函数就变的非常有用了。该函数通过使用PHP语法高亮程序中定义的颜色,输出或返回给定的PHP代码的语法高亮版本。

示例:

 

<?php
highlight_string( '<?php phpinfo(); ?>' );
?>

2.str_word_count()

该函数必须要传递一个参数,根据参数类型返回单词的个数。如下面的所示:

<?php
$str = "How many words do I have?" ;
echo str_word_count ( $str ); //Outputs 6
?>

 

3.levenshtein()

该函数主要返回两个字符串之间的Levenshtein距离。Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。该函数对查找用户所提交的错别字非常有用。

示例:

<?php
$str1 = "carrot" ;
$str2 = "carrrott" ;
echo levenshtein( $str1 , $str2 ); //Outputs 2
?>

 

4.get_defined_vars()

该函数返回一个包含所有已定义变量列表的多维数组,这些变量包括环境变量、服务器变量和用户定义的变量。

示例:

print_r(get_defined_vars());

 

5.escapeshellcmd()

该函数用来避开字符串中的特殊符号,可以防止使用者耍花招来破解服务器系统。可以用本函数搭配exec() 或是system() 二个函数,这样可以减少网上使用者的恶意破坏行为。

示例:

<?php
$command = './configure ' . $_POST [ 'configure_options' ];
$escaped_command = escapeshellcmd ( $command );
system( $escaped_command );
?>

 

 6.checkdate()

本函数可以用来检查日期是否有效,例如年为0至32767年、月为1至12月、日则随着月份及闰年变化。

示例:

<?php
var_dump( checkdate (12, 31, 2000));
var_dump( checkdate (2, 29, 2001));
//Output
//bool(true)
//bool(false)
?>

 

7.php_strip_whitespace()

该函数可以返回已删除PHP注释以及空白字符的源代码文件,这对实际代码数量和注释数量的对比很有用。

示例:

?php
// PHP comment here
/*
  * Another PHP comment
  */
echo        php_strip_whitespace( __FILE__ );
// Newlines are considered whitespace, and are removed too:
do_nothing();
?>

  输出结果:

<?php
  echo php_strip_whitespace( __FILE__ ); do_nothing(); ?>

转载于:https://www.cnblogs.com/CSDNchina/p/3512707.html

相关文章:

  • ubuntu安装显卡驱动后亮度不能调节问题
  • 恶心的Oracle的if else if...
  • A Traffic Simulation
  • Inpaint 强大的去水印、改图软体,轻鬆把不要的物件从相片中移除
  • windows批处理命令大全
  • idea开发环境中maven控制台乱码解决
  • 在windows下修改右键菜单以实现使用vs2010快速编译代码
  • java ftp
  • cyq.data V4.5.5默认SetTo、GetFrom的修改
  • 新书出炉——《BREW编程实例入门》
  • 在thread 引用pthread_t 空指针的问题
  • 分离的历史
  • 无法为请求的 Configuration 对象创建配置文件 错误原因
  • 一月17日新生冬季练习赛解题报告F.Play Game 1
  • [IE9] IE9 beta版下载链接
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Apache Pulsar 2.1 重磅发布
  • Docker: 容器互访的三种方式
  • express + mock 让前后台并行开发
  • express.js的介绍及使用
  • FastReport在线报表设计器工作原理
  • in typeof instanceof ===这些运算符有什么作用
  • JavaScript 基本功--面试宝典
  • java概述
  • Lsb图片隐写
  • MySQL主从复制读写分离及奇怪的问题
  • Protobuf3语言指南
  • Redis中的lru算法实现
  • 从零开始的无人驾驶 1
  • 解决iview多表头动态更改列元素发生的错误
  • 如何优雅地使用 Sublime Text
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • raise 与 raise ... from 的区别
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #ifdef 的技巧用法
  • #mysql 8.0 踩坑日记
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (八)c52学习之旅-中断实验
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (转)http协议
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转载)深入super,看Python如何解决钻石继承难题
  • .bat文件调用java类的main方法