关于检测文件是否有病毒的PHP实现逻辑

在用户收到发送过来的文件后 , 要能够检测出这个文件是否是病毒 , 核心的软件是clamav , 可以在linux命令行执行,检测文件或目录里的病毒。

在用户收到发送过来的文件后 , 要能够检测出这个文件是否是病毒 , 核心的软件是clamav , 可以在linux命令行执行,检测文件或目录里的病毒

推荐:PHP视频教程

下载和安装可以参考其他技术文章。

需要注意的是要开启下配置文件中的

LocalSocket /tmp/clamd.socket登录后复制

运行时是以守护进程的方式运行着一个clamd的程序 , 检测的时候只需要调用下面命令

/usr/local/clamav-0.102.1/bin/clamdscan 文件

响应的信息是下面的内容

/usr/local/clamav-0.102.1/bin/clamdscan /tmp/attachment_04613DE5A94DD00E1F48F7A5D39A802C9700000000000001_4
/tmp/attachment_04613DE5A94DD00E1F48F7A5D39A802C9700000000000001_4: Xls.Virus.Mailcab-6702020-0 FOUND
———– SCAN SUMMARY ———–
Infected files: 1
Time: 0.176 sec (0 m 0 s)登录后复制

在PHP中调用exec函数 , 调用上面的命令就可以实现检测了

$cmd=;/usr/local/clamav-0.102.1/bin/clamdscan {$file};;
exec($cmd,$output);登录后复制

关于检测文件是否有病毒的PHP实现逻辑

php入门到就业线上直播课:进入学习Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

Laravel5.5仿ThinkPHP的pathinfo传参示例

转载2020-03-28 09:00:321913 + 加入Thinkphp讨论小组

关于检测文件是否有病毒的PHP实现逻辑

Laravel 9 保姆级视频教程,想学不会都难!进入学习

PS:目前所能找到的方法,希望不会被大佬们鄙视…

1、我的nginx配置:

#test6 admin
server {
listen 80;
server_name admin.test6.local;
root "d:/data/www/test6/public/admin";
index index.html index.htm index.php;
error_page 404 /404.html;
location = /404.html {
return 404 'Sorry, File not Found!';
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html; # windows dir
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ /Uploads/.*\.php$ {
deny all;
}
location ~ \.php/ {
if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) { }
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_NAME $1;
fastcgi_param PATH_INFO $2;
fastcgi_param SCRIPT_FILENAME $document_root$1;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}登录后复制

2、路由 /routes/admin.php

PS:目前用的方法是这样的

Route::get('/shop/goods_list', 'Shop\GoodsController@goods_list');
Route::get('/shop/goods_list/page/{page}/limit/{limit}', 'Shop\GoodsController@goods_list');
Route::get('/shop/goods_list/page/{page}/limit/{limit}/keyword/{keyword}', 'Shop\GoodsController@goods_list');登录后复制

3、基类 \app\Http\Controllers\Admin\Publi\BaseController.php

PS:请别吐槽那个Publi,我也很无奈啊..

<?php

namespace App\Http\Controllers\Admin\Publi;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Http\Request;
class BaseController extends Controller
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

//构造函数
public function __construct() {
$this->middleware(function ($request, $next) {
//未登录的处理
//$this->dosomething($request);
//仿TP用pathinfo传参
$path=$request->path();
$this->pathinfo=$this->path_to_array($request,$path);
return $next($request);
});
}

/*路径转数组
*输入路径,如:http://admin.test6.local/shop/goods_list/page/3
* 返回数组,如:$array['page']=3; $array['keyword']='somekeyword';
*/
public function path_to_array(Request $request,$path=null){
$array=array();
if(strpos($path,'/')!==false){
$arr=explode('/',$path);
foreach($arr as $k=>$v){
if($k>0&&($k%2==0)){
$array[$v]=$arr[$k+1];
}
}
}
if(count($array)>0){
return $array;
}
}

}登录后复制

3、控制器 \app\Http\Controllers\Admin\Shop\GoodsController.php

namespace App\Http\Controllers\Admin\Shop;
use App\Http\Controllers\Admin\Publi\BaseController;
use Illuminate\Http\Request;
class GoodsController extends BaseController {
public function goods_list(Request $request){
//获取参数
$page=1;
$keyword='';
//当前页
if(is_array($this->pathinfo)){
//当前页
if (array_key_exists("page",$this->pathinfo)) {
$page=$this->pathinfo['page'];
}
//关键词
if (array_key_exists("keyword",$this->pathinfo)) {
$keyword=$this->pathinfo['keyword'];
}
}
dump($page);
dump($keyword);
exit;
}
}登录后复制

推荐:laravel教程

以上就是Laravel5.5仿ThinkPHP的pathinfo传参示例的详细内容,更多请关注钦钦技术栈其它相关文章!

转载至:php中文网【www.php.cn】

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/36965/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022-11-28 8:23:23
下一篇 2022-11-28 8:23:52

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!