php技术
文章平均质量分 66
我很满意
只要有足够多的眼睛,就可让所有问题浮出水面。
展开
-
php 利用socket上传文件
socket通信原理的博文http://blog.51yip.com/php/673.htmlsocket的服务器和客户端都是要用php命令来运行的。平常我们上传文件是浏览本地文件,通过一个php程序将文件上传一个地方,这个时候我们用php命令来运行php程序就不方便了。这个时候我们可以用fsockopen来打开一个socket通道,并且可以通过浏览器来访问页面。下面有一个例子,大家可以试一下...原创 2016-10-08 18:58:43 · 722 阅读 · 0 评论 -
php 去掉 头尾 空格 2种方法
看似很简单的问题,其实还是有点坑的,首先这里 空格转义,不是字符串,直接用trim()是去不掉。1,用preg_replace替换$test = " dfadad 论责民与三英的关系775fd "; $test = preg_replace('/^( |\s)*|( |\s)*$/', '', $test); var_dump($test); //结果如下:原创 2016-10-08 19:03:56 · 4588 阅读 · 0 评论 -
php word 转 html
要想完美解决,office转pdf或者html,最好还是用windows office软件,libreoffice不能完美转换,wps没有api。先确认com模块是不是开启,phpinfo里面如果有com_dotnet模块,说明已开启,如果没有,修改php.ini,com.allow_dcom = true前面的注释去掉,重启就OK了,php官方网站说,php5.4.5之前,com原创 2016-10-08 19:01:05 · 542 阅读 · 0 评论 -
php 跨域 form提交 2种方法
出于安全因素考虑,直接跨域访问是不允许的,下面介绍二种跨域的方法。一,通过php curl function curlPost($url,$params) { $postData = ''; foreach($params as $k => $v) { $postData .= $k . '='.$v.'&';原创 2016-10-08 17:03:29 · 444 阅读 · 0 评论 -
php 大访问量 数据重复问题
大访问量,或者受到恶意攻击的情况,数据库没有设计好,很容易产生重复数据。有三个请求,同时到达php,php同时到数据库查询,有没有数据,发现没有,同时插入3条数据。这么巧都是同时?事实确实会同时。解决办法,个人能实现的有3种。1,通过唯一索引,联合主键限制等。例如,用户表手机号,邮箱一般都是唯一的。订单表的订单号也是唯一。2,通过锁表。例如,现在对表进行插入操作前,php先lo原创 2016-10-08 17:01:31 · 952 阅读 · 0 评论 -
error_log()将错误信息写入日志文件
error_log() 是发送错误信息到某个地方的一个函数,在程序编程中比较常见,尤其是在程序调试阶段。 bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )把错误信息发送到 web 服务器的错误日志,或者到一个文件里。m原创 2016-10-17 20:51:40 · 9684 阅读 · 0 评论 -
php.ini 配置 error_log 错误信息
开发的时候,基本上都会把display_errors,error_reporting开启,有助于提高开发效率,上线后,基本上都会关掉页面报错信息,在把报错信息,放到文件中。一,php-fpm的error_log配置1,修改php.inidisplay_errors = Off //改为off,页面访问时就不会出现报错信息了 2,修改php-fpm配置文件;php_flag原创 2016-10-17 20:46:07 · 9176 阅读 · 0 评论 -
防止表单重复提交的八种简单有效的策略
表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。有很多的应用场景都会遇到重复提交问题,比如:点击提交按钮两次。点击刷新按钮。使用浏览器后退按钮重复之前的操作,导致重复提交表单。使用浏览器历史记录重复提交表单。浏览器重复的HTTP请求。用户提交表单时可能因为网速的原因,或者网页被恶意刷新,致使同一条记录重复插入到数据库中,这是一个比较棘手的问题。我们可以原创 2016-09-28 21:25:44 · 84685 阅读 · 5 评论 -
打开php.ini中的safe_mode,会影响那些函数?
php的安全模式是个非常重要的内嵌的安全机制,在一个有多个用户帐户存在的PHP开放的Web服务器上它会比较执行脚本UID(用户ID)和脚本尝试访问的文件的UID,以此作为限制机制的基础。如果UID相同,则执行脚本;否则,脚本失败。由于启用了安全模式后,由于会对比文件的拥有者和文件的执行者是否是一个人,所以会减慢执行效率。同时,能够控制一些php中的函数,比如system(),同时把很多文件操作函数原创 2016-08-24 08:01:33 · 3296 阅读 · 0 评论 -
PHP中正确使用Json的姿势
原文链接:http://www.aichengxu.com/view/224从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。1、json_encode()该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:$arr = array ('a'=>1,'b'=>2原创 2016-08-26 11:45:35 · 309 阅读 · 0 评论 -
LINUX下PHP安装VLD扩展,利用opcode优化php代码
1)查看opcode代码:下载与安装VLD# wget http://pecl.php.net/get/vld-0.11.2.tgz# tar zxvf vld-0.11.2.tgz# cd ./vld-0.11.2# /usr/bin/phpize //或者直接phpize# ./configure --with-php-config=/usr/bin/ph原创 2016-07-22 15:01:30 · 804 阅读 · 0 评论 -
PHP判断用户访问的操作系统,以及iOS的设备
如今上网的渠道是越来越多了,不再局限于PC互联网端了,如今使用的手机上网,IPAD,IPHONE等等也作为了主流,除了上网的客户端变得多样外,还有用户的操作系统也变得多样,虽然windows还是主流,但是现在还有比较专业的设计人员用的是mac,另外手机操作系统 android 也是作为手机主流操作系统来供用户来访问的。既然上网的渠道变得多样化,用户使用的操作系统和设备也多了起来,这些终端的原创 2016-08-08 10:40:18 · 5108 阅读 · 1 评论 -
php.ini save_handler 修改不起作用 解决办法
php5.3.3以前php-fpm还没有被php收录,配置php基本都在php.ini里面,php5.3.3及以后,除了在php.ini配置以外,还可以在php-fpm.conf里面配置。多个地方都可以配置的话,就存在一个优先级。php-fpm.conf优先级比php.ini高。1,修改/etc/php-fpm.conf,或者,/etc/php-fpm.d/*.conf,或者,/usr转载 2016-10-08 19:14:38 · 2143 阅读 · 0 评论 -
crontab执行不了php的解决方法
用crontab跑php程序时,如何去调试,各人有各人的方法。我也有套方法,看一下,我是如何解决crontab执行不了php程序这个问题的。一,php文件有没有执行权限[root@linux cron]# ls -al |grep del -rwxr-xr-x 1 zwh ftpgroup 494 10-20 16:42 del_redis.php如果没有X,说明没有执行权原创 2016-10-08 19:27:45 · 295 阅读 · 0 评论 -
数组编程:array_reduce array_map array_walk
1、array_reduce($arr, $callback)用回调函数迭代地将数组简化为单一的值。其中$arr 为输入数组,$callback($result , $value)接受两个参数,$result为上一次迭代产生的值,$value是当前迭代的值。使用array_reduce()替代foreach()循环最常用的一个业务场景也许就是数组求和,比如:$arr = array('1','2'...原创 2017-08-09 14:54:40 · 1113 阅读 · 0 评论 -
PHP学习进阶之路
我的索引-程序员垂直导航PHP完整实战23种设计模式GitHub PHP资源列表web前端知识点总结segmentfault头条原创 2017-01-05 22:14:15 · 545 阅读 · 0 评论 -
throw new Exception
throw new Exception(String, Exception)throw new Exception(String)throw是明确地抛出异常MSDN:Exception (String, Exception) 使用指定错误信息和对作为此异常原因的内部异常的引用来初始化 Exception 类的新实例。 在发现异常以后作一下记录异常信息然后在抛出异常,让原创 2016-12-17 21:26:24 · 9521 阅读 · 0 评论 -
电子商务网站中订单号设计有什么规则和依据吗?
电子商务网站中订单号设计有什么规则和依据吗?写的很不错,在这分享给大家。原文链接:https://www.zhihu.com/question/19805896生成随机唯一号码, 比如订单号function build_order_no(){ return date('Ymd').substr(implode(NULL, array_map('ord', s原创 2016-11-21 22:32:19 · 1328 阅读 · 0 评论 -
使用phpexcel导出到xls文件的时候出现乱码解决
<?phpinclude 'global.php';$ids = $_GET['ids'];$sql = "select * from crm_cost_end where id in ( {$ids} )";$result = $db->findAll($sql);//echo $result[1]['sn'];//创建一个excel对象$objPHPExcel = new P原创 2016-11-21 22:20:28 · 776 阅读 · 0 评论 -
多线程的概念
一、程序与进程1、程序:一段静态的代码。2、进程:程序的一次动态执行过程,它对应从代码加载、执行到执行完毕的一个完整过程。3、进程也称任务,支持多个进程同时执行的OS就被称为多进程OS或多任务OS。二、进程与线程在一个程序内部也可以实现多个任务并发执行,其中每个任务称为线程。线程是比进程更小的执行单位,它是在一个进程中独立的控制流,即程序内部的控制流。特点:线程不能独立原创 2016-11-21 22:19:12 · 239 阅读 · 0 评论 -
PHPEXcel 10008错误解决
可能会出现如下错误:Unknown codepage: 10008PHPExcel_Shared_CodePage::NumberToName(%d)PHPExcel/Shared/CodePage.php 98 break()原因是 NumberToName() 方法中没有 10008 对应的情况处理,所以会抛出“Unknown codepage: 10原创 2016-11-21 22:16:20 · 1535 阅读 · 0 评论 -
PHP操作Excel – PHPExcel 基本用法详解
1.header header("Content-Type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=sample.xls"); header("Pragma:no-cache"); header("Expires:0"); 2.PHPE原创 2016-11-21 22:14:36 · 579 阅读 · 0 评论 -
PHP数组编码转换
因为一些特殊字符的显示效果的原因不得不把习惯的utf-8工程改成了GBK,由于使用了ajax技术,又涉及到了老问题——编码转换。一些表单验证需要返回json数据,PHP的json_encode函数只支持utf-8编码,无奈只得iconv了,需要达到的效果是GBK数组转换成utf-8数组传给json_encode函数。最开始的思路,将数组序列化后用iconv函数转换编码,之后再反序列化,代码原创 2016-11-16 21:35:42 · 362 阅读 · 0 评论 -
php命名空间
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。例:项目中有两个模块:article和message board,它们各自有一个处理用户留言的类Comment。之后我可能想要增加对所有用户留言的一些信息统计功能,比如说我想得到所有留言的数量。这时候调用它们Com原创 2016-10-21 10:35:42 · 410 阅读 · 0 评论 -
命令行执行带参数的php脚本,并取得参数
一,为什么我们要在命令行下运行php脚本呢?个人理解,主要有二个原因:1,利用crontab去跑php,可以给服务器减压,当然在这里有一个条件,就是实时性要求不高。比如:sns中的好友动态,这个实时要求不高,但是数据量比较大,这个时候定时跑的话,会给web服务器,数据库服务器分担不小的压力。2,就是我们要定时去完成某一事情,比如:我要删除一个月前,用户留言,这个时候,写的php脚本在c原创 2016-10-08 19:30:02 · 772 阅读 · 0 评论 -
在ThinkPhp中实现无限极分类
IndexController.class.php<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { //查询全部数据 public function index(){ //实例化model $User=D(原创 2016-08-06 15:54:23 · 5031 阅读 · 1 评论 -
PHP运行模式
1、运行模式关于PHP目前比较常见的五大运行模式:1)CGI(通用网关接口 / Common Gateway Interface)2)FastCGI(常驻型CGI / Long-Live CGI)3)CLI(命令行运行 / Command Line Interface)4)Web模块模式(Apache等Web服务器运行的模式)5)ISAPI(Internet Server转载 2016-08-02 21:41:51 · 276 阅读 · 0 评论 -
php发送邮件email
<?php header("content-type:text/html;charset=utf-8"); include("class.phpmailer.php"); include("class.smtp.php"); $mail = new PHPMailer(); $mail->IsSMTP(); //设置使用SMTP服务器发原创 2016-07-12 08:50:51 · 527 阅读 · 0 评论 -
session信息入库
1、为什么要实现session信息入库?session入库 重写session制机,在session的周期内,获得到session的数据并记录到数据库,和获得的进程 * 作用: 解决了http超文本传输的无状态无法保存用户信息的问题 * * Session默认是存放到服务器上的文件中,不方便管理,如果能把session存放到数据库中就可以方便的对数据库进行原创 2016-06-29 19:33:19 · 388 阅读 · 0 评论 -
php算法-牛群增长
有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不能再生,20岁死亡,n年后有多少头?转载 2016-06-17 14:37:54 · 789 阅读 · 0 评论 -
json、xml、jsonp接口的生成与调用
json.php(生成json) <?php header('content-type:application/json;charset=utf8'); $arr = array('1','2','asda'); $json = json_encode($arr); echo $json; ?>原创 2016-06-28 21:06:59 · 1011 阅读 · 0 评论 -
禁用COOKIE后SESSION还能用吗
1.ASP 在ASP中,Session必须倚赖Cookie才可用,Session是存储在服务器端的,而Cookie是存储在客户端的,相对而言,Session的安全性和可靠程度都比Cookie高。2.PHP 在PHP中,通过相关的配置,可以让Session不依赖Cookie而存在。 php.ini中,把session.use_trans_sid设成1,那么连接...原创 2016-05-28 11:32:22 · 7293 阅读 · 0 评论 -
php错误级别
php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中,就像在 Linux上安装 PHP和 Apache 2的文档说明中所示的那样。在调试 PHP应用程序时,应当知道两个配置变量。下面是这两个变量及其默认值:display_errors = Offerror_reporting = E_ALL通过在 php.in转载 2016-05-18 14:09:34 · 423 阅读 · 0 评论 -
文件上传form属性:enctype=multipart/form-data
首先知道enctype这个属性管理的是表单的MIME编码。共有三个值可选:1、application/x-www-form-urlencoded2、multipart/form-data3、text/plain其中application/x-www-form-urlencoded是默认值,作用是设置表单传输的编码。例如我们在AJAX中见过xmlHttp.setRequestHead原创 2016-05-31 09:21:17 · 1490 阅读 · 0 评论 -
用最少的代码实现3值比较
max = a>b?a:b;max = max>c?max:c; max=(a>b?a:b)>c?(a>b?a:b):c原创 2016-05-28 09:31:57 · 511 阅读 · 0 评论 -
file_get_contents模拟浏览器访问的时候乱码
<?phpheader("content-type:text/html;charset=utf-8");$url= 'http://www.sohu.com';//file_get_contents模拟浏览器访问ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399转载 2016-04-11 11:37:18 · 1866 阅读 · 0 评论 -
GET与POST传递数据的最大长度限制
get 是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35字节)。对于其他浏览器,如FireFox,Netscape等,则没有长度限制,这个时候其限制取决于服务器的操作系统。即如果url太长,服务原创 2016-05-17 15:02:16 · 35189 阅读 · 0 评论 -
php中时间戳和日期格式的转换
date() 格式化一个本地时间/日期 //返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间time() 返回当前的 Unix 时间戳 //返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。strtotime() 将任何英文文本的日期时间描述解原创 2016-05-30 15:11:37 · 1386 阅读 · 0 评论 -
session如何跨域
想要共享 SESSION 数据,那就必须实现两个目标:www.a.com和i.a.com所产生的SESSION ID相同,并且可通过同一个 COOKIE 进行传递,也就是说各个服务器必须可以读取同一个名为 PHPSESSID 的 COOKIE;另一个是 SESSION 数据必须存放在一个各个系统都能访问到的地方。简单地说就是多服务器共享客户端的 SESSION ID,同时还必须共享服务器端的 SE转载 2016-05-28 11:40:05 · 1299 阅读 · 0 评论 -
windows上常用的cmd命令
CMD命令大全详解:1、 gpedit.msc-----组策略。2.、sndrec32-------录音机。3、Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具。 它在 Windows NT/2000/XP 中均可使用 , 但在 Windows 98 中却没有集成这一个工具。 4、explorer-------打开原创 2016-04-19 20:08:25 · 419 阅读 · 0 评论