首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
184 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
33
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
560
篇与
的结果
2023-08-12
原生php递归删除文件+文件夹
原生php递归删除文件+文件夹<?php function deldir($dirname){ if(file_exists($dirname)) {//判断是否存在文件夹 $dir=opendir($dirname);//打开文件夹 while($filename=readdir($dir)){//读取123文件夹里面的数据 if($filename!="." && $filename!=".."){//除去.并且..除外 $file=$dirname."/".$filename; if(is_dir($file)){ deldir($file); //使用递归删除子目录,就是说判断123文件夹里面有没有文件夹,如果有遍历然后删除 }else{ echo '删除文件<b>'.$file.'</b>成功<br>'; unlink($file); } } } closedir($dir); echo '删除目录<b>'.$dirname.'</b>成功<br>'; rmdir($dirname); } } deldir('D:3');//比如文件在d盘的123目录下 ?>
2023年08月12日
9 阅读
0 评论
0 点赞
2023-08-12
PHP监控一个进程是否在运行的方法
PHP监控一个进程是否在运行的方法exec("pgrep lighttpd", $pids); if(empty($pids)) { // lighttpd is not running! } pgrep -f 全名匹配. $mabbitmq=shell_exec("pgrep [r]abbitmq"); //https://stackoverflow.com/questions/51551908/why-is-the-result-equal-to-0-and-sometimes-1-shell-execpgrep-f $mabbitmq = str_replace(PHP_EOL, '', $mabbitmq); $mongodb=shell_exec("pgrep [m]ongo"); $mongodb = str_replace(PHP_EOL, '', $mongodb); $ydmcuclient=shell_exec("pgrep -f [y]dmcu_client"); $ydmcuclient = str_replace(PHP_EOL, '', $ydmcuclient);
2023年08月12日
18 阅读
0 评论
0 点赞
2023-08-12
laravel 如何覆盖composer的 vendor类文件?
laravel 如何覆盖composer的 vendor类文件?作为 Laravel 开发人员,你可能遇到过这样的情况:你不喜欢 vendor 文件夹某个包中的某些代码,并且想要更改它。你可以直接在该文件中更改它。但问题是当你点击composer update命令升级包时很容易覆盖已修改的vendor类文件。那么有什么解决办法呢?感谢Composer,它具有覆盖任何包/类的功能。Composer 使用PSR-4来加载类。因此,在 composer.json 中,你可以提及从哪些文件或文件夹加载类。同样你也可以排除加载它。操作步骤:windows用户排除文件请参考下面的示例以了解我如何从包tymon/jwt-auth 中排除 1个文件"exclude-from-classmap": ["vendor\tymon\jwt-auth\src\Middleware\BaseMiddleware.php"],在上面的例子中可以看出我已经排除了BaseMiddleware.php文件。你必须将此行放在composer.json的autoload段中。这里要注意的一件事是,我在路径中有双反斜杠,那是因为在 Windows 机器上,并且因为它是 JSON 文件,所以我必须在那里转义 () ,即写上双反斜杠。包含文件以覆盖vendor现在我们已经排除了我们想要覆盖的文件,现在需要包含有更改的新文件,以便 composer 知道要包含哪些文件。为此,向 composer.json 中的 'psr-4' 键添加另一个键值对,如下所示:"autoload": { "psr-4": { "App\\": "app/", "Tymon\\": "app/Overrides/" }, "exclude-from-classmap": [ "vendor\\tymon\\jwt-auth\\src\\Middleware\\BaseMiddleware.php" ] },添加了上面代码中的"Tymon\": "app/overrides",以指示comopser将文件包含在 app/overrides 文件夹中。现在创建覆盖文件夹。从要覆盖的包中复制粘贴所有文件。根据您的需要更改文件。在 composer.json 中添加以上行运行命令“composer dump-autoload”(不带引号)上面的命令将刷新所有自动加载文件以包含您的新文件。请记住,无论何时更改 composer.json 文件中的任何内容,您都需要触发上述5的命令以反映更改。对于Unix/Linux用户Linux 用户的说明是相同的,只是代码会改变,我在下面提到。按照与上述 Windows 用户相同的说明进行操作。排除文件如果您在 Linux/Unix 机器上,路径将如下所示:"exclude-from-classmap": ["vendor/tymon/jwt-auth/src/Middleware/BaseMiddleware.php"],包含文件"autoload": { "psr-4": { "App\\": "app/", "Tymon\\": "app/Overrides/" }, "exclude-from-classmap": [ "vendor/tymon/jwt-auth/src/Middleware/BaseMiddleware.php" ] }, Overrides 只是一个名字,你可以选择任何你喜欢的。重要的是提供它的 composer.json 文件的相对路径。谢谢以上在composer2.0下测试通过,参考 https://shyammakwana.me/php/laravel-override-vendor-classes.html
2023年08月12日
27 阅读
0 评论
0 点赞
2023-08-12
PHP的可调用类型(callable)总结
PHP的可调用类型(callable)总结// 1 普通函数 call_user_func('my_function'); // 2类的静态方法 call_user_func(['MyClass', 'myCallbackMethod']); // 3对象方法 call_user_func([new MyClass(), 'myCallbackMethod']); //4类的静态方法(2) call_user_func('MyClass::myCallbackMethod'); //5匿名函数 call_user_func(function(){echo '匿名函数';}); //6箭头函数 call_user_func(fn() =>print('箭头函数')); //7相对关系 call_user_func(array('B', 'parent::who')); // 8: Objects implementing __invoke can be used as callables class C { public function __invoke($name) { echo 'Hello ', $name, "\n"; } }$c = new C(); call_user_func($c, 'PHP!'); ?>其它用法:call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0 call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // As of PHP 5.3.0 class myclass { static function say_hello() { echo "Hello!\n"; } } $classname = "myclass"; call_user_func(array($classname, 'say_hello')); call_user_func($classname .'::say_hello'); // As of 5.2.3 $myobject = new myclass(); call_user_func(array($myobject, 'say_hello'));
2023年08月12日
12 阅读
0 评论
0 点赞
2023-08-12
PHP的输出缓冲与header发送问题
PHP的输出缓冲与header发送问题如果你在header或cookie函数前发送大量字符到浏览器,就会报headers already sent 错误,以下为说明:headers_sent()此函数告诉我们发送header的状态。如果将输出发送到浏览器,则不应使用重定向等header函数。为避免此类错误,我们可以使用headers_sent()函数检查header发送状态。它根据标头的状态返回TRUE或FALSE。当我们执行一个php脚本时,将输出存储到缓冲区中,然后再将其发送到浏览器。但是,这还取决于您的服务器php.ini设置,其中必须打开或关闭输出缓冲区。output_buffering = Off现在,由于关闭了输出缓冲,因此所有输出都将发送到浏览器。让我们通过一个例子来学习。<?Phpecho 'Hello p2hp.com';echo "";if (!headers_sent()) {echo " 没有header发送,你可以进行发送header或cookie ";}else{echo " Header已经发送,你不能再发送header或cookie了 ";}?>以上代码的输出将取决于你的php.ini设置。对于我们来说,我们的php.ini默认是:output_buffering 4096 4096在上面的第一行代码中,我们将输出发送到浏览器,但是仍然得到header_sent()没有发送header,因为缓冲区尚未将输出发送到浏览器。所以我们将得到这样的输出没有header发送,你可以进行发送header或cookie因此,要将输出发送到浏览器,我们必须耗尽输出缓冲区的容量。这里是4096。因此,我们将尝试向浏览器发送更多输出以超出限制,然后检查if条件以了解header发送状态。<?phpfor ($i=1; $i<=372; $i++) {echo "p2hp.com - ";}echo "";if (!headers_sent()) {// 没有header发送,你可以进行发送header或cookie // echo '没有header发送,你可以进行发送header或cookie'; // header("HTTP/1.1 301 Moved Permanently"); // header ("Location: mynewpage1.html"); exit;} else {// Header已经发送,你不能再发送header或cookie了 // echo 'Header已经发送,你不能再发送header或cookie了'; header("Location: mynewpage1.html");// Warning: Cannot modify header information - headers already sent by xxxxx}在上面的代码中,您可以通过增加或减少$ i值来调整for循环。循环数越高,意味着将有更多的数据发布到缓冲区。尝试通过增加$i的最大值来查看headers_sent()在哪里变为TRUE。我们可以使用flush()强制将缓冲区输出发送到浏览器。但是,这取决于服务器,并且可能会以不同的方式工作。
2023年08月12日
16 阅读
0 评论
0 点赞
1
...
47
48
49
...
112