文档章节

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

chinaweilu
 chinaweilu
发布于 2013/12/11 09:44
字数 652
阅读 214
收藏 27
点赞 0
评论 0

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(); ?>


© 著作权归作者所有

共有 人打赏支持
chinaweilu
粉丝 1
博文 5
码字总数 2035
作品 0
朝阳
程序员
15 个实用的 PHP 正则表达式

对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串。这篇文章主要介绍了15个超实用的php正则表达式,需要的朋友可以参下。在...

snowing1990 ⋅ 2016/04/12 ⋅ 0

PHP实用函数手册:stream_context_create()模拟POST/GET

PHP实用函数手册:streamcontextcreate()模拟POST/GET 有时候,我们需要在服务器端模拟 POST/GET 等请求,也就是在 PHP 程序中去实现模拟,改怎么做到呢?或者说,在 PHP 程序里,给你一个数...

开元中国2015 ⋅ 2015/06/05 ⋅ 0

php获取一些时间实现方法(实践)

php获取一些时间实现方法(实践) 这几天在开发的时候遇到的一些时间上的问题,整理了一下,分享给大家,可以看看,有需要的话可以利用一下。 1.获取上个月第一天及最后一天. 上面的方法有些...

优惠券发放 ⋅ 04/19 ⋅ 0

PHP各种实用的东东

估计大部分人都会有这样的问题,在平常玩微博或的时候看到别人分享的一些实用的东西,比如一些NB的js库,或者php组件等等。看完当时加入了浏览器书签。但是出现的现象就是很少去翻它,或者说...

weixingo ⋅ 2016/02/05 ⋅ 1

PHP里10个鲜为人知但却非常有用的函数

levenshtein() 你有没有经历过需要知道两个单词有多大的不同的时候,这个函数就是来帮你解决这个问题的。它能比较出两个字符串的不同程度。 Source: http://php.net/manual/en/function.leve...

renew ⋅ 2014/09/11 ⋅ 0

无限级联动下拉框地区分类选择的实现--超傻瓜,超弱智式

一、功能概要 不多说,先上图: 这种地址下来选择框经常都会在开发中遇到,那么如果我们对这种地址的选择方式提出两个要求: 1. 选择的地区信息是需要动态变更的,即是可以通过后台添加地区信...

Jay-zone ⋅ 2012/09/14 ⋅ 9

10 件在 PHP 7 中不要做的事情

1. 不要使用函数 这一天终于来了,从此你不仅仅“不应该”使用函数。PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的函数,或者更灵活的 PDO 实现。 2. 不要编写垃圾代码...

两味真火 ⋅ 2016/09/18 ⋅ 52

Discuz 字符串过滤函数

function daddslashes($string, $force = 0, $strip = FALSE) { } 从上面的函数我们可以看出,只要是$GET,$POST,$COOKIE和$REQUEST这四个超全局变量,都会进行特殊过滤,因为$_REQUEST函数包...

路边拾草人 ⋅ 2012/02/02 ⋅ 0

(PHP学习笔记)PHP 全局变量 - 超全局变量

PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。 这些超全局变量是: $GLOBALS $_SERVE...

w1sw ⋅ 2016/04/26 ⋅ 0

Scikit-learn玩得很熟了?这些功能你都知道吗?

     大数据文摘作品   编译:汪小七、笪洁琼、Aileen   分享一些Scikit-learn程序包里鲜有人知的遗珠功能。   Scikit-learn是Python所有的机器学习程序包中,你必须掌握的最重要的...

大数据文摘 ⋅ 05/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 55分钟前 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

【转】JS浮点数运算Bug的解决办法

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎...

NickSoki ⋅ 今天 ⋅ 0

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 今天 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 今天 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 9

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部