
PHP
编程爱好者之家
这个作者很懒,什么都没留下…
展开
-
TP5利用phpforword生成word表格文档
1.首先用composer安装下载 phpoffice/phpforwordcomposerrequirephpoffice/phpword2.在controller里引用usePhpOffice\PhpWord\IOFactory;usePhpOffice\PhpWord\PhpWord;3.生成简单表格代码如下$PHPWord=newPhpWord...原创 2019-12-18 11:20:58 · 1235 阅读 · 0 评论 -
thinkphp5 连贯查询中条件为数组时候查询语句不对
TP 5.1版本中在 5.1.21版本后要是用连贯查询如果条件为数组形式的会出现一点问题,比如说我想实现某个条件不等于的查询用到了 $where['id'] = array('neq','7'),sql语句查询出来后会默认加上一个 IN,如下SELECT `id` FROM `category` WHERE `id` IN (neq,7) ORDER BY `createtime` DE...原创 2019-02-25 09:52:00 · 1165 阅读 · 0 评论 -
thinkphp 3.2 ERROR_PAGE以及TMPL_EXCEPTION_FILE配置后页面不跳转
今天遇到一个问题就是我用的TP框架然后陪只错误的路由的时候让他跳转到404页面,但是配置不生效配置如下'TMPL_EXCEPTION_FILE' => '/404.html',// 异常页面的模板文件'ERROR_PAGE'=>'/404.html',// 错误定向页面最后解决办法是更改了框架里面的代码在 ThinkPHP/Library/Think/Think...原创 2018-12-26 09:46:41 · 1213 阅读 · 0 评论 -
php判断请求是否是ajax请求
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ echo 'is ajax';}else{ echo 'not ajax';}更多内容请参考原文地址:https://www.codelove...原创 2019-01-04 17:30:55 · 1663 阅读 · 0 评论 -
php通过sphinxapi接口实现全文搜索
下面讲解下 php通过sphinxapi接口实现全文搜索1.首先先在服务器上安装好sphinx并且建立好索引文件,具体安装步骤参考以下链接windows下: https://www.codelovers.cn/article/20181210180620.htmllinux下:https://www.codelovers.cn/article/20181211163543.html...原创 2018-12-12 10:50:12 · 2491 阅读 · 0 评论 -
linux下安装sphinx-for-chinese 支持中文全文索引
一.需要安装mysql和Gcc和g++yum install gccyum install g++在linux下,C++的编译器不是g++这个名称,而是gcc-c++,由此看来的确是我想当然了。然后直接运行yum install gcc-c++ libstdc++-devel 二.下载 sphinx-for-chinese.tar.gz(点击下载) 放在/usr/l...原创 2018-12-11 17:44:27 · 1425 阅读 · 1 评论 -
windows下安装sphinx-3.1.1
1.首先在官网下载最新的版本,下载地址为:http://www.sphinxsearch.com/downloads/current/ 我下载的是3.1.12.解压压缩包,然后放在自己的磁盘里,我放在了E盘并且重命名为sphinx,在文件夹中新建data,log文件夹data目录存储生成的索引文件,log目录存放日志文件3.在bin目录下新建sphinx.conf文件,然后...原创 2018-12-10 18:07:48 · 2340 阅读 · 5 评论 -
PHP截取中英文字符串长度
我们经常会遇到需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用…表示,以下函数可以满足你的需求。/* Utf-8、gb2312都支持的汉字截取函数 cut_str(字符串, 截取长度, 开始长度, 编码); 编码默认为 utf-8 开始长度默认为 0 */ function cutStr($string, $sublen, $start ...转载 2018-12-03 11:59:56 · 559 阅读 · 0 评论 -
网站地图sitemap文件如何创建以及格式说明
我们提交给站长工具站点资源地址的时候会用到sitemap提交方式,下面就是sitemap的具体的格式要求 <?xml version="1.0" encoding="utf-8"?> <!-- XML文件需以utf-8编码--> <urlset> <!--必填--> <url>原创 2018-11-28 10:19:57 · 3216 阅读 · 0 评论 -
如何创建sitemap索引文件
我们在提交sitemap的时候如果sitemap里面的内容太多,单个文件如果超出了10 M或者包含网址超过了5W个那么我们就要创建sitemap索引文件,下面就是一个简单sitemap索引的例子: <?xml version="1.0" encoding="UTF-8"?> <sitemapindex> <sitemap> ...原创 2018-11-28 10:07:23 · 3955 阅读 · 0 评论 -
PHP会话处理函数
PHP处理会话函数1、 session_start函数功能:开始一个会话或者返回已经存在的会话。函数原型:boolean session_start(void);返回值:布尔值功能说明:这个函数没有参数,且返回值均为true。最好将这个函数置于最先,而且在它之前不能有任何输出,否则会报警,如:Warning: Cannot send session cache limiter – head...转载 2018-12-04 16:51:49 · 254 阅读 · 0 评论 -
PHP在安全中使用的函数
在PHP中,有些很有用的函数开源非常方便的防止你的网站遭受各种攻击,例如SQL注入攻击,XSS(CrossSiteScripting:跨站脚本)攻击等。一起看看PHP中常用的、可以确保项目安全的函数。注意,这并不是完整的列表,是我觉得对于你的i项目很有的一些函数。 1.mysql_real_escape_string()这个函数在PHP中防止SQL注入攻击时非常有用。这个函数会对一些例...转载 2018-12-04 16:44:23 · 196 阅读 · 0 评论 -
php utf8编码和gbk编码相互转换
1.utf8转换为gbkheader("Content-type:text/html;charset=UTF-8");echo $str= 'utf8转gbk!';echo '<br />';echo iconv("UTF-8","gbk//TRANSLIT",$str); //将字符串的编码从UTF-8转到GB23122.gbk转utf8header("Cont...转载 2018-11-26 17:24:30 · 7009 阅读 · 0 评论 -
Linux目录挂载新磁盘后目录里原文件不见了
在挂载新磁盘到一个原先存在的目录的后发现原先目录里面的文件没了发现文件夹里只有lost+found文件夹,不用担心,文件并没丢失,下面是解决办法mkdir /new ###创建临时目录mount /dev/sdb1 /new ###将磁盘挂载到临时上目录cp -R /home/* /new ###将/home下的所有数据复制到/newrm -rf /home/* ...转载 2018-11-29 17:35:10 · 13753 阅读 · 2 评论 -
PHP将时间秒转换成时分秒格式
function secToTime($seconds){ $result = '00:00:00'; if ($seconds>0) { $hour = floor($seconds/3600); $minute = floor(($seconds-3600 * $hour)/60); ...转载 2018-11-26 16:26:36 · 605 阅读 · 0 评论 -
DES、AES、RSA加密的区别
BASE64:编码方式(8位字节代码),二进制与字符串相互转换 MD5:Message Algorithm(消息摘要算法第五版),散列函数(哈希算法)_不可逆,压缩性DES:Data Encrytion Standard(数据加密标准),对应算法是DEA 特点: 1. 对称加密 2. 同一个SKAES:Advanced Encrytion Standard(高级加密标...转载 2018-11-23 17:43:09 · 4258 阅读 · 0 评论 -
PHP中AES加密解密类
我们在工作中会遇到各种加密,下面就是PHP中AES加密解密的类<?php class Aes{ /** * var string $method 加解密方法,可通过openssl_get_cipher_methods()获得 */ protected $method; /** * var string $secret_key...原创 2018-11-23 17:33:56 · 401 阅读 · 0 评论 -
thinkphp5 提示 Fatal error: Call to a member function assign() on null
控制器里谢了一个构造函数,然后就报错 Fatal error: Call to a member function assign() on null原因:新的构造函数覆盖父级构造函数,导致无法调用框架中包含的函数类解决办法:将__construct()改为_initialize()原文地址:https://www.codelovers.cn/article/20190223094707...转载 2019-02-23 09:49:55 · 6905 阅读 · 0 评论 -
php检测上传图片是否含有非法代码
function checkHex($image) { if (file_exists($image)) { $resource = fopen($image, 'rb'); $fileSize = filesize($image); fseek($resource, 0); if ($fileSize > 512)...原创 2019-02-18 14:16:35 · 1132 阅读 · 0 评论 -
php远程下载文章中图片并保存源文件名不变
/**远程图片下载*/publicfunctiondownpic($content){$content=preg_replace('/alt=[\'|\"](.*?)[\'|\"]/','',$content);$content=str_replace(' ','',$content);//获取图片preg_match_all('/&l...原创 2019-08-08 16:44:51 · 468 阅读 · 0 评论 -
phpmailer发送163,yeah邮箱
include"class.phpmailer.php";include"class.smtp.php";$mail=newPHPMailer();$mail->isSMTP();//使用SMTP服务$mail->CharSet="utf8";//编码格式为utf8,不设置编码的话,中文会出现乱码...原创 2019-07-25 17:19:50 · 623 阅读 · 0 评论 -
php使用redis缓存
1.引用redis类文件(点击下载)classRedisVote{ privatestatic$redis_obj=null;//redis实例化时静态变量 privatestatic$instance=null; privatestatic$isRedis=false; publicfunction__clone(){ ret...原创 2019-07-01 09:17:12 · 1222 阅读 · 0 评论 -
TP5.1 单入口多域名多模块设置
TP5.1 单入口多域名多模块设置如下,有两个域名www.codelobers.cn,m.codelovers.cn 其中www域名想指向index模块,m域名想指向m模块1. 首先设置入口文件 /public/index.phpswitch($_SERVER['HTTP_HOST']){case'www.codelovers.cn':$model...原创 2019-07-09 18:09:15 · 3057 阅读 · 0 评论 -
传文件的时候提示413 Request Entity Too Large错误
上传文件的时候提示413 Request Entity Too Large错误原因:由于nginx座位web服务器,配置最大的上传大小限制问题。解决办法:修改nginx配置,设置 client_max_body_size=50M (ps:根据自己情况设置自己需要大小即可)原文地址:https://www.codelovers.cn/article/2019070...原创 2019-07-03 14:03:26 · 452 阅读 · 0 评论 -
PHP实现保留两位小数
$num = 20.6568;//第一种:利用round()对浮点数进行四舍五入echo round($num,2); //20.66 //第二种:利用sprintf格式化字符串 推荐使用第二种 如果$num = 20 输出$num = 20.00 $format_num = sprintf("%.2f",$num);echo $format_num; //20.66 //第三...转载 2019-05-09 19:11:56 · 2503 阅读 · 0 评论 -
php实现点击图片另存为功能
php实现点击图片另存为功能如下$file=$filename='https://www.codelovers.cn/static/Home/images/404.jpg';$out_filename='newfilename.jpg';$mime='application/force-download';header('Pragma:public');//r...转载 2019-04-23 09:18:43 · 816 阅读 · 1 评论 -
tp5.1设置插入数据如果失败不抛出异常
tp5.1插入数据如果失败会抛出异常,那么解决办法是什么如果不希望抛出异常,可以使用下面的方法:$data=['name'=>'codelovers.cn'];Db::name('user')->strict(false)->insert($data);加上strict(false) 即可原文地址:https://www.codelove...原创 2019-04-22 17:32:18 · 2332 阅读 · 0 评论 -
PHP使用ip2long()存入数据库里面很多数据为2147483647
今天用int类型存储了下IP地址,用到了PHP中的ip2long(),方法,但是发现很多数据都是2147483647,使用long2ip()转换后就是127.255.255.255原因:在mysql中int(11)的最大值是:2147483647解决方案:将字段类型改为 bigint原文地址:https://www.codelovers.cn/article/2019...原创 2019-04-16 15:20:11 · 544 阅读 · 0 评论 -
thinkphp5后台添加401验证
我们在登录后台的时候为了后台安全往往会加401验证,thinkphp5的方法如下:找到“/application/admin/controller/Login.php"的index()方法,在最前面加上如下语句$user="codelovers401name";//设置你的401用户名$pw="codelovers401pwd";//设...原创 2019-04-12 10:22:29 · 966 阅读 · 0 评论 -
tp5中使用ueditor编辑器编辑器里html标签也显示出来了
今天在tp5框架中使用ueditor编辑器,内容输出到编辑器的时候,html标签也显示出来了,如下图解决办法为在输出模板的时候加上raw函数产生原因为:tp5框架为了避免出现XSS安全问题,默认的变量输出都会使用htmlentities方法进行转义输出。你还可以设置默认的过滤方法,在配置文件template.php中设置'default_filt...原创 2019-03-27 10:53:33 · 2338 阅读 · 0 评论 -
thinkphp5.1生成xml
publicfunctionxml(){ $articleList=$this->getArticleList();//自己的获取文章的方法,要改成你自己的方法 $html=''; $html.='<urlset>'; foreach($articleListas$key=>$value){ $html.='<url>'...原创 2019-02-27 10:26:17 · 3236 阅读 · 0 评论 -
Linux设置HTTP头中隐藏PHP版本号
PHP 配置默认允许服务器在 HTTP 响应头 X-Powered-By 中显示安装在服务器上的 PHP 版本。出于服务器安全原因(虽然不是主要的要担心的威胁),建议你禁用或隐藏此信息,避免那些针对你的服务器的攻击者知道你是否运行了 PHP。打开php.ini文件定位到关键词 expose_php,并将值设置成 Off:expose_php=Off原文地址:https://www...原创 2019-03-08 15:26:57 · 313 阅读 · 0 评论 -
thinkphp5获取URL信息
如果要获取当前的请求信息,可以使用\think\Request类,除了下文中的$request = Request::instance();也可以使用助手函数$request = request();当然,最方便的还是使用注入请求对象的方式来获取变量。例如:获取URL信息$request = Request::instance();// 获取当前域名ec...转载 2019-02-14 14:55:18 · 7736 阅读 · 0 评论 -
thinkphp5进行Apache ,IIS,Nginx的URL重写
可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考[ Apache ] httpd.conf配置文件中加载了mod_rewrite.so模块 AllowOverride None 将None改为 All 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下 <IfModule mod_rewrite.c>...转载 2019-02-14 11:26:19 · 579 阅读 · 0 评论 -
PHP获取客户端真实IP
我们经常要用数据库记录用户的IP,以下代码可以获取客户端真实的IP:function get_real_ip(){ $ip=false; if(!empty($_SERVER["REMOTE_ADDR"])){ $ip = $_SERVER["REMOTE_ADDR"]; } if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) &&a...原创 2018-11-23 17:12:45 · 1484 阅读 · 1 评论 -
curl连续请求页面卡死解决办法
今天项目中遇到一个问题就是在后台用curl请求数据,连续请求url链接后页面会卡死502错误,最后解决办法是在 curl请求方法中加了CURLOPT_TIMEOUT就可以了,这样如果超出设置时间不影响页面其他的请求,到了设置时间请求也会停止curl方法如下:function get_request($url){ //初始化 $ch = curl_init(); c...原创 2018-11-23 16:57:19 · 6745 阅读 · 0 评论 -
通过QQ互联实现网站第三方登录
实现qq的第三方登录我们用到了QQ互联,下面是具体的实现方案一:首先注册申请QQ互联账号并且关联相应的网站,从而获得APP ID以及 APP Key二:下载相应的SDK(下载地址:http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD)第三:安装SDK,并且配置相应的选项 第四:代码实现1.将SDK中的example...转载 2018-08-29 09:56:25 · 7097 阅读 · 1 评论 -
jquery生成二维码插件jquery.qrcode.js应用
今天用到了js生成二维码插件jquery.qrcode.js,总结了下使用方法如下首先插件从下载地址为:https://www.codelovers.cn/Public/Home/js/jquery.qrcode.min.js将jquery.qrcode.min.js和jquery添加到您的网页中<script src="jquery.min.js"></scrip...转载 2018-08-28 09:11:09 · 483 阅读 · 0 评论 -
Linux常用到的命令总结(1)---系统信息
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info...转载 2018-07-14 09:15:06 · 147 阅读 · 0 评论 -
PHP正则获取一段字符串中所有图片地址
有的时候我们需要获取文章内容或者字符串中所有的图片地址,那么我们首先想到的就是正则匹配,该怎么实现呢,下面就是小编的亲测方法$str = '<p><img src="http://www.codelovers.cn/Public/upload/20180621/1529561322214.png" /></p><p><img src="http...转载 2018-07-06 10:40:04 · 5249 阅读 · 0 评论