-
问题背景:
在PHP内核的字符串实现源码中我们发现了这么一个结构体如下:
struct _zend_string { ...
-
问题背景:
不出意外,如下代码运行结果肯定为空:
<?php
$data = file_get_contents("/path/to/phpcreeper.png");
var_dump(json_encode($data));
问题原因:
粗心好多年,翻手册发现明确说明 json_encode(mixed $value) 的第一个参数$value只能是除resou...
-
安装第三方包:
composer require vendor/package:version
composer require vendor/package=version
composer require vendor/package version
卸载第三方包:
composer remove vendor/package
搜索第三方包:
composer sea...
-
爬山虎引擎(PHPCreeper)以及配套爬虫应用框架(PHPCreeper-Application)全面同步发布。
欢迎 Github Star 星星收藏关注。
爬山虎:
基于workerman全新一代多进程异步事件驱动爬虫引擎,致力于让天下没有难爬的数据。
官方地址:
http://www.phpcreeper.com/
爬山虎中文开发文档...
-
问题背景:
如题所示,PHP脚本中如何获得Linux系统环境变量?
解决方案:
PHP有一套系列函数可以用来执行外部命令的,如此我们就可以轻松上述功能,这套系列函数大致有:exec()、passthru()、system()等等,具体请参阅PHP手册。
代码封装:
class Tool
{
/**
* @brief 获取Linux系统...
-
问题背景:
意外删除了 redis 数据库目录,结果PHP报错:
RedisException: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.
问题原因:
redis强制关闭了快照进而导致不能持久化,但是不能十...
-
问题背景:
默认从github上fork克隆源作者的某个项目到自己名下以后,这个分支默认是不会自动同步更新的,这就需要我们手动来解决。
解决方案:
1、打开 fork 克隆过来的项目,即自己名下的 fork 分支:
2、点击 New pull request:
3、点击 Compare across fo...
-
问题背景:
exec("tar czvf /path/to/phpcreeper/phpcreeper.tar.gz /path/to/phpcreeper/ ");
这段脚本本身并没有任何问题,也能正常工作并压缩打包,但是你会发现打包后的文档里是按照指定的全路径一起打包的,即保留了层级目录,有时候我们并不希望如此,而是只希望打包后文档中只保留比如本例中的 phpcreeper 单一目...
-
Logger是一个简洁的、轻量级的PHP日志工具,日前经历了几次较大的更新迭代,欢迎使用:
https://github.com/blogdaren/logger
-
问题背景:
composer 如何将第三方软件包更新或升级到指定版本?
问题举例:
将 blogdaren/logger 版本升级到 v1.0.8 --> v1.1.1
解决方案:
# composer require blogdaren/logger:v1.1.1
注意事项:
优先使用composer require,尽量不要用 compo...
-
问题背景:
说的就是composer这套东西,当我们在自己的项目中 composer require 第三方项目以后,只需引入
require "/path/to/vendor/autoload.php",就可以轻松调用自动加载功能,但是自己的项目中如何用上这个呢?
解决方案:
composer.json 文件中新增一个配置项名为 "au...
-
问题背景:
现想获取某天是星期几?考虑使用PHP内置的date()函数,然不幸的是, 当日期小于1970年或者大于2038年时,使用date()处理会报错,这个问题其实和语言无关,和平台有关,仅对于32位机器而言会出错,俗称 Y2K38 漏洞 ,具体自己百科下。
解决方案-1:
采用PHP内置的 DateTime 类处理,代码如下:
function tra...
-
知识背景:
类似于 ...$args 的用法在PHP手册中叫: 可变数量的参数列表
代码举例:
function sum(...$input)
{
$total = 0;
array_walk($input, function($v)use(&$total){
$total += $v;
});
return $tot...
-
两者联系:
两者在某些功能上有异曲同工之处,比如都是用来将用户自定义的函数作用到数组的每一个单元上。
两者区别:
array_map 的用法是 array_map(函数名, 数组),而 array_walk 的用法是 array_walk(数组, 函数名);
array_map 的函数可以是用户自定义函数,也可以是PHP自带的函数;而 array_walk 里面的函数只能是...
-
问题场景:
1、假如我们有多个项目需要调用某些公共的工具套件,那么一般的做法都是在每个项目中单独 include 工具套件库,明显很麻烦。
2、如何利用 auto_prepend_file 一次性预加载多个文件?
解决方案-1:
如标题所示,我们可以使用PHP配置项 auto_prepend_file = "/path/to/libray/tools....
我就遇到了这个问题,终于找到解决办法...