PHP常用函数前100排行榜

简介: 接着又想到了代码,也好奇开发者最常使用的单词或函数有哪些,我统计了三种类型:系统函数、变量名、自定义函数名等统计,感兴趣的朋友可以将正则设置为自己需要统计的规则。

一、背景


这两天在努力记单词,想着应该把最常使用的单词先记下来,从网上找了几篇文章之后分析了一批词汇,效果还算不错;


接着又想到了代码,也好奇开发者最常使用的单词或函数有哪些,我统计了三种类型:系统函数、变量名、自定义函数名等统计,感兴趣的朋友可以将正则设置为自己需要统计的规则。


二、参考代码


<?php
function scanMyDir($path)
{
    $path = rtrim($path, '/');
    // 打开目录
    $dh = opendir($path);
    // 循环读取目录
    while (($file = readdir($dh)) !== false) {
        // 先要过滤掉当前目录'.'和上一级目录'..'
        if ($file == '.' || $file == '..' || $file == '.git') continue;
        if (strpos($file, ".php") > 1) {
            // 为了能够显示中文目录/文件,需要进行转码
            $_SERVER['fileList'][] = $path . '/' . iconv('gbk', 'utf-8', $file);
        }
        // 如果该文件仍然是一个目录,进入递归
        if (is_dir($path . '/' . $file)) {
            scanMyDir($path . '/' . $file);
        }
    }
}
function explodeCount($fileName, $pregRule)
{
    $text = file_get_contents($fileName);
    preg_match_all($pregRule, $text, $keywordArr);
    foreach ($keywordArr[1] as $keyword) {
        $_SERVER['count'][$keyword] = $_SERVER['count'][$keyword] ?? 0;
        $_SERVER['count'][$keyword] += 1;
    }
}
function start($path, $pregRule)
{
    scanMyDir($path);
    //把要统计的文件写入到当前文件夹中,方便查看统计了那些文件
    file_put_contents("fileList.txt", implode("\n", $_SERVER['fileList']));
    //从上一个文件中读取要统计的文件列表,
    $fileList = file_get_contents("fileList.txt");
    $fileList = explode("\n", $fileList);
    //遍历统计每个文件中的词汇
    foreach ($fileList as $fileName) {
        explodeCount($fileName, $pregRule);
    }
    //将结果写入到文件当中之前,先做好排序
    arsort($_SERVER['count']);
    //只需要前100个
    $_SERVER['count'] = array_slice($_SERVER['count'], 0, 100);
    //将结果写入到文件中去
    $sumResult = var_export($_SERVER['count'], true);
    file_put_contents("countResult.txt", $sumResult);
}
//要统计的代码目录
$path = '/root/mycode/work/offcn-live/vendor';
//$pregRule = '/ ([a-z]+_?[a-z]+)\(/';  //系统函数规则
//$pregRule = '/(\$[a-zA-Z]+_?[a-zA-Z]+)/';   //变量名规则
$pregRule = '/[->:]+([a-z]+_?[a-z]+)\(/'; //自定义函数名规则
start($path, $pregRule);


三、常用函数


array (
  'array' => 6126,
  'isset' => 1345,
  'substr' => 845,
  'sprintf' => 737,
  'strlen' => 650,
  'count' => 598,
  'unset' => 556,
  'array_merge' => 449,
  'list' => 413,
  'strpos' => 408,
  'str_replace' => 393,
  'implode' => 348,
  'explode' => 333,
  'is_array' => 332,
  'static' => 297,
  'trim' => 263,
  'declare' => 238,
  'mock' => 237,
  'pack' => 232,
  'preg_match' => 222,
  'is_null' => 210,
  'get_class' => 203,
  'array_map' => 195,
  'self' => 191,
  'strtolower' => 190,
  'empty' => 183,
  'preg_replace' => 180,
  'chr' => 169,
  'function_exists' => 163,
  'user_error' => 161,
  'handle' => 158,
  'is_string' => 155,
  'is_object' => 140,
  'str_repeat' => 139,
  'array_keys' => 138,
  'rewind' => 137,
  'in_array' => 133,
  'write' => 132,
  'mt_rand' => 132,
  'array_values' => 129,
  'time' => 125,
  'not' => 124,
  'array_shift' => 124,
  'extract' => 120,
  'getenv' => 115,
  'reset' => 113,
  'execute' => 112,
  'printf' => 110,
  'fopen' => 108,
  'get' => 105,
  'collect' => 100,
  'current' => 100,
  'fclose' => 99,
  'unpack' => 96,
  'strval' => 96,
  'matches' => 92,
  'rtrim' => 90,
  'str_pad' => 88,
  'json_encode' => 88,
  'array_filter' => 88,
  'array_pop' => 85,
  'app' => 84,
  'range' => 84,
  'dirname' => 83,
  'define' => 81,
  'microtime' => 80,
  'foo' => 80,
  'create' => 80,
  'ord' => 80,
  'compact' => 79,
  'read' => 77,
  'method_exists' => 76,
  'register' => 75,
  'realpath' => 74,
  'intval' => 73,
  'bar' => 73,
  'strtotime' => 73,
  'fread' => 72,
  'class_exists' => 72,
  'print' => 72,
  'max' => 72,
  'curl_setopt' => 70,
  'fwrite' => 69,
  'tap' => 66,
  'strtoupper' => 65,
  'array_unshift' => 65,
  'serialize' => 64,
  'ob_start' => 64,
  'unserialize' => 63,
  'strrpos' => 61,
  'key' => 61,
  'preg_split' => 61,
  'ini_get' => 61,
  'add' => 59,
  'close' => 59,
  'array_slice' => 58,
  'putenv' => 57,
  'eval' => 57,
  'gettype' => 56,
  'var_export' => 56,
)


四、常用变量名


array (
  '$this' => 75572,
  '$value' => 6303,
  '$options' => 4731,
  '$key' => 4597,
  '$name' => 4367,
  '$vendorDir' => 4310,
  '$message' => 4115,
  '$request' => 3453,
  '$stackPos' => 3237,
  '$response' => 2796,
  '$result' => 2577,
  '$data' => 2308,
  '$path' => 2117,
  '$node' => 1733,
  '$type' => 1650,
  '$method' => 1620,
  '$file' => 1449,
  '$arguments' => 1415,
  '$class' => 1408,
  '$callback' => 1378,
  '$output' => 1364,
  '$command' => 1314,
  '$parameters' => 1273,
  '$config' => 1252,
  '$expected' => 1197,
  '$column' => 1153,
  '$input' => 1140,
  '$id' => 1119,
  '$headers' => 1083,
  '$event' => 1083,
  '$args' => 986,
  '$attributes' => 979,
  '$length' => 961,
  '$code' => 950,
  '$query' => 947,
  '$prefix' => 947,
  '$mock' => 930,
  '$token' => 925,
  '$context' => 909,
  '$test' => 892,
  '$temp' => 884,
  '$header' => 871,
  '$matches' => 847,
  '$object' => 825,
  '$string' => 813,
  '$container' => 810,
  '$server' => 810,
  '$stream' => 768,
  '$collection' => 768,
  '$route' => 761,
  '$values' => 761,
  '$record' => 748,
  '$exception' => 748,
  '$actual' => 719,
  '$connection' => 712,
  '$item' => 697,
  '$constraint' => 670,
  '$operation' => 666,
  '$date' => 655,
  '$bucket' => 648,
  '$array' => 644,
  '$line' => 643,
  '$count' => 641,
  '$uri' => 622,
  '$buf' => 618,
  '$handler' => 608,
  '$default' => 598,
  '$table' => 594,
  '$content' => 578,
  '$reader' => 558,
  '$resource' => 549,
  '$application' => 549,
  '$tokens' => 541,
  '$locale' => 539,
  '$attribute' => 531,
  '$format' => 518,
  '$filename' => 510,
  '$className' => 509,
  '$str' => 505,
  '$parts' => 505,
  '$matcher' => 499,
  '$text' => 498,
  '$queue' => 483,
  '$generator' => 480,
  '$filter' => 476,
  '$client' => 475,
  '$level' => 468,
  '$domain' => 467,
  '$writer' => 464,
  '$argument' => 460,
  '$number' => 459,
  '$option' => 452,
  '$payload' => 448,
  '$keys' => 445,
  '$process' => 444,
  '$translator' => 437,
  '$app' => 435,
  '$listener' => 430,
  '$files' => 429,
  '$index' => 422,
)


五、常用自定义函数


array (
  'once' => 1292,
  'with' => 1105,
  'get' => 997,
  'expects' => 700,
  'method' => 651,
  'set' => 612,
  'create' => 600,
  'add' => 588,
  'foo' => 464,
  'format' => 434,
  'write' => 429,
  'execute' => 421,
  'all' => 378,
  'evaluate' => 344,
  'has' => 320,
  'register' => 318,
  'fail' => 294,
  'find' => 286,
  'run' => 284,
  'any' => 280,
  'start' => 254,
  'parse' => 233,
  'load' => 203,
  'make' => 200,
  'read' => 191,
  'generate' => 185,
  'factory' => 182,
  'close' => 164,
  'current' => 155,
  'render' => 152,
  'ask' => 149,
  'numerify' => 146,
  'will' => 145,
  'where' => 137,
  'singleton' => 133,
  'writeln' => 128,
  'valid' => 125,
  'next' => 124,
  'main' => 122,
  'send' => 121,
  'trans' => 117,
  'request' => 116,
  'option' => 113,
  'handle' => 112,
  'matches' => 111,
  'match' => 110,
  'contains' => 103,
  'write_shortstr' => 103,
  'process' => 101,
  'never' => 100,
  'at' => 99,
  'initialize' => 97,
  'rewind' => 96,
  'bind' => 92,
  'validate' => 90,
  'dispatch' => 88,
  'filter' => 86,
  'in' => 86,
  'copy' => 85,
  'verify' => 84,
  'delete' => 83,
  'wrap' => 81,
  'put' => 79,
  'stop' => 78,
  'mock' => 78,
  'dump' => 78,
  'supports' => 78,
  'observe' => 77,
  'encrypt' => 77,
  'attach' => 75,
  'first' => 74,
  'apply' => 73,
  'remove' => 72,
  'invoke' => 72,
  'connection' => 71,
  'advance' => 69,
  'decrypt' => 69,
  'ordered' => 69,
  'save' => 68,
  'resolve' => 68,
  'prepare' => 67,
  'println' => 67,
  'auth' => 65,
  'reset' => 65,
  'bar' => 64,
  'write_short' => 64,
  'call' => 63,
  'map' => 63,
  'compare' => 63,
  'string' => 62,
  'log' => 62,
  'wait' => 61,
  'info' => 61,
  'update' => 60,
  'escape' => 60,
  'lookup' => 58,
  'write_bits' => 57,
  'count' => 57,
  'push' => 56,
  'times' => 55,
)


后面的数字,代表为在代码中出现的次数,我用的四项目的vendor目录,里面都是一些比较常用的开源代码库,所以应该算是比较有参考价值

目录
相关文章
|
14天前
|
PHP
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
本文介绍了解决PHP常见问题的步骤,包括定位和创建`php.ini`文件,以及解决`mb_strlen()`函数未定义和DLL模块加载错误的具体方法。
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
|
14天前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
6天前
|
Unix PHP 数据库
PHP日期和时间Date()函数获取当前时间
通过灵活运用 `date()`函数及其丰富的格式选项,PHP开发者可以轻松地在应用程序中处理和展示日期及时间信息。无论是需要精确到秒的完整时间戳,还是仅仅展示日期或时间的某一部分,`date()`函数都能胜任。理解并熟练应用这些格式化技巧,对于提升代码的可读性和维护性至关重要。
15 1
|
14天前
|
XML SQL PHP
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。
|
14天前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。
|
2月前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
28 2
|
2月前
|
JavaScript 前端开发 PHP
|
2月前
|
监控 数据库连接 PHP
php中register_shutdown_function函数用法详解
通过 `register_shutdown_function`,PHP开发者可以对脚本的终止进行更精细化的处理,这个函数让开发者能在脚本的生命周期结束时有机会执行最后的操作,无论脚本是正常结束还是发生错误。由于它的高度实用性和灵活性,`register_shutdown_function`是PHP开发中不可或缺的工具之一。
43 0
|
3月前
|
SQL 关系型数据库 MySQL
php所有函数总结
以上只是PHP中函数的一部分,实际上PHP提供了丰富的内置函数,能够处理各种复杂的任务。
22 2
|
3月前
|
Serverless PHP
【PHP常用函数封装】 php 判断两个数组所有的值是否是完全相等
【PHP常用函数封装】 php 判断两个数组所有的值是否是完全相等
33 3