michabbb/ejz-core

一组辅助函数。添加到全局作用域。

dev-master 2018-08-07 10:14 UTC

This package is auto-updated.

Last update: 2024-08-28 23:09:42 UTC


README

核心是一组辅助函数。添加到全局作用域。

安装

$ mkdir myproject && cd myproject
$ curl -sS 'https://getcomposer.org/installer' | php
$ php composer.phar require michabbb/ejz-core:~1.0

要使用它,只需在您的脚本中包含 vendor/autoload.php

需求

PHP 5.5 或更高版本(已安装 cURL 和 GD 库)。

函数

每个函数都添加到全局作用域。您不应包含任何命名空间。

esc

编码基本 HTML 字符: ><&

参数
  • s: 要处理的字符串
  • decode: 将此设置为 true 以执行反向编码
示例
$s = esc("HTML: <>&");
// $s => HTML: &lt;&gt;&amp;
$s = esc($s, $decode = true);
// $s => HTML: <>&

fesc

编码 HTML 字符: ><&'"。用于编码属性值很有用。

参数
  • s: 要处理的字符串
  • decode: 将此设置为 true 以执行反向编码
示例
$s = fesc("HTML: <>&, '\"");
// $s => HTML: &lt;&gt;&amp;, &#039;&quot;
$s = fesc($s, $decode = true);
// $s => HTML: <>&, '"

cloakHTML

在 HTML 中隐藏一些敏感值。

参数
  • s: 要处理的字符串
示例
$value = cloakHTML("value");
echo <<<END
<input type="hidden" name="name" value="{$value}" />
END;
// => <input type="hidden" name="name" value="&#118;&#97;&#108;&#117;&#101;" />

str_truncate

截断长字符串。

参数
  • string: 不言而喻
  • len: 最大长度(40
  • center: 显示尾部或不显示(true
  • replacer: 替换缺失部分的字符串(...
示例
$s = str_truncate("Hello, world!", 5);
// $s => H...!
$s = str_truncate("Hello, world!", 5, $center = false, '..');
// $s => Hel..

mt_shuffle

使用 mt_rand() 函数对数组进行洗牌。

参数
  • items: 数组的引用
  • seed: 洗牌算法的种子(null
示例
$a = array(1, 2, 3, 4, 5);
array_shuffle($a);
// $a => [3, 1, 5, 4, 2]

file_get_ext

从文件名获取扩展名。

参数
  • file: 文件名
示例
$ext = file_get_ext("/etc/passwd");
// $ext => ""
$ext = file_get_ext("/etc/nginx/nginx.conf");
// $ext => conf

file_get_name

从文件名获取不带扩展名的名称。

参数
  • file: 文件名
示例
$name = file_get_name("/etc/passwd");
// $name => passwd
$name = file_get_name("/etc/nginx/nginx.conf");
// $name => nginx

curl

用于网络爬取的复杂函数。支持多线程(MT)。

参数
  • urls: 单个 URL 或 URL 列表

  • settings: 关联数组

示例
$content = curl("http://github.com");
preg_match('~<title>(.*?)</title>~', $content, $title);
@ $title = $title[1];
// $title => How people build software · GitHub
$content = curl("http://ejz.ru/ua", array(
    CURLOPT_USERAGENT => "Custom User Agent"
));
// $content => Custom User Agent

template

实现模板。

参数
  • template: 模板文件
  • vars: 在内部使用的变量
示例
<!-- test.tpl -->
<html>
    <head>
        <title><?=$title?></title>
    </head>
    <body>
        <?=$body?>
    </body>
</html
$vars = array(
    'title' => 'test title',
    'body' => 'test body',
);
echo template("test.tpl", $vars);

validateHost

验证主机名。

参数
  • host: 主机名

host

从 URL 中提取(并验证)主机名。

参数
  • url: URL
示例
echo host("http://site.com");
// => site.com

curdate

Y-m-d 格式返回当前日期。

参数
  • days: 向当前日期添加一些天数(0
示例
echo curdate();
// => 2016-09-20
echo curdate(-1);
// => 2016-09-19

now

Y-m-d H:i:s 格式返回当前日期时间。

参数
  • seconds: 向当前时间添加一些秒数(0
示例
echo now();
// => 2016-09-20 12:20:58
echo now(-1);
// => 2016-09-20 12:20:57

getTagAttr

返回标签属性(或某个特定的属性)。

参数
  • tag: 代表标签的字符串
  • attr: 获取某个特定的属性(null
示例
$tag = '<a href="/about/">About</a>';
$attrs = getTagAttr($tag);
// $attrs => [href => /about/]
$href = getTagAttr($tag, 'href');
// $href => /about/

nsplit

将字符串拆分为数组,字符串被修剪,空字符串被过滤。

参数
  • string: 您想要拆分的字符串
示例
$string = "\nhello\n world!\n\n";
$lines = nsplit($string);
// $lines => ["hello", "world"]

is_closure

检查参数是否是可调用的闭包。

参数
  • obj: 要检查的闭包
示例
$call = function () {
    echo "Hello, world!\n";
};
$flag = is_closure($call);
// $flag => true

is_ip

检查参数是否是有效的 IP 地址。

参数
  • ip: 要检查的 IP 地址
示例
$flag = is_ip("192.168.0.1");
// $flag => true
$flag = is_ip("0.0.0.0");
// $flag => true
$flag = is_ip("1.0.0");
// $flag => false
$flag = is_ip("256.0.0.0");
// $flag => false

str_replace_once

仅用替换字符串替换搜索字符串的一个实例。

参数
  • needle: 要搜索的字符串
  • replace: 替换值
  • haystack: 被搜索的字符串
示例
echo str_replace_once("o", "O", "Hello, world!");
// => HellO, world!

作者

许可

Core 使用 WTFPL 许可 许可(见 LICENSE)。