php
文章平均质量分 55
zuimei_forver
这个作者很懒,什么都没留下…
展开
-
数据采集之file_get_contents实现
由于需要一些新闻的信息,比如标题、时间、作者、内容和图片等信息。之前听说过数据采集,所以想尝试一下,结果花了大半天的时间才基本上完成了。当然了,bug肯定还是有的。下面介绍我实现新闻采集的过程:首先,肯定要找一个新闻网站,我选择的是中国新闻网,最好是选择有新闻列表的页面(比如:http://www.chinanews.com/scroll-news/gn/2015/1021/news.sh原创 2015-11-08 20:09:02 · 477 阅读 · 0 评论 -
PHP底层工作原理
PHP可以分成四层体系结构,如下图:Zend引擎%0;Zend整体用纯C实现,是php的内核部分,它将php代码翻译(词法、语法解析等一系列处理)为可执行opcode的处理并实现相应的�'A4�理方法、实现了基本的数据结构(如hashtable、oo)、内存分配及管理め提供了相应的api方法供外部调用,是一切的核心,所有的外围功能均围绕zend实现。Extensions围绕着Zen转载 2016-01-11 22:41:15 · 438 阅读 · 0 评论 -
PHP运行模式
PHP目前比较常见的五大运行模式:CGI (Common Gateway Interface)通用网关接口FastCGI 常驻型CGI(Long-Live CGI)CLI 命令行运行(Command Line Interface)Web模块模式(Apache等Web服务器运行的模式)ISAPI (Internet Server Application Program Interfac转载 2016-01-12 13:08:55 · 329 阅读 · 0 评论 -
命令行下执行php脚本
界面交互命令行模式(CLI)下执行PHP脚本,可以使用STDOUT和STDIN与命令行界面进行交互,如下面代码:<?php fwrite(STDOUT,"Enter Name:");//向命令行界面输出"Enter Name:" $name = trim(fgets(STDIN));//从命令行获取输入 fwrite(STDOUT,"the name is $name");//向命令原创 2016-01-12 17:00:20 · 469 阅读 · 0 评论 -
php脚本配置
设置脚本运行内存 有时候用php做脚本跑数据时,需要消耗大量内存,默认内存大小不够用,这时就需要更改内存设置了 ini_set(“memory_limit”,”1G”);原创 2016-05-05 17:35:10 · 295 阅读 · 0 评论 -
array_walk
array_walk:我们可以使用自己定义的函数,对数组中每个元素进行回调处理bool array_walk(array &$array, callable $funcname [,mixed $userdata=null])参数说明:array:输入的数组funcname: 一般funcname接收两个参数,第一个是数组值,第二个是键名userdata:可选参数,若填写,则作为funcnam转载 2016-08-18 15:04:29 · 274 阅读 · 0 评论 -
引用
php中引用是指用不同的名字访问同一个变量内容,就是允许两个不同的变量指向同一个内容,而不是C++中的指针。 注:要与c/c++中指针进行区别 引用传递 引用传递可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。注意,只有在函数定义时,才有引用符号&,在调用函数时没有&。function foo(&$var) { $var++;}$a = 5;foo($a); /原创 2016-08-22 20:47:59 · 202 阅读 · 0 评论 -
Nginx与PHP的运行原理
FastCGI FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。 多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等。FastCGI也被许多脚本语言所支持,其中就有PHP。 FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差*,因为每次HTTP服务器遇到动态程序时都转载 2016-09-20 16:27:51 · 280 阅读 · 0 评论 -
闭包
PHP中也可以使用闭包,但版本应该是5.3.0及以上。 闭包中可以从父作用域继承变量,在闭包内使用,但要通过use声明。 $tmp = 'hello'; $func = function() use ($tmp) { echo $tmp . '<br/>'; }; $func(); $tmp = 'world'; $func();输出结果为原创 2016-12-14 20:42:06 · 252 阅读 · 0 评论 -
杂记
访问控制PHP中对属性或方法的访问控制有public(共有)、protected(受保护)、private(私有)三种,若省略则默认为public,并且之前的var现作为public的别名使用。 共有或受保护的属性或方法在子类中能覆盖父类中相同的属性或方法(ps:若是方法,其参数必须相同),而对于私有类型的属性或方法是不能覆盖的。如果在父类和子类中声明相同的属性或者方法,在父类中访问即是父类的属性原创 2016-12-15 14:55:29 · 195 阅读 · 0 评论 -
销毁Session
Session是用于一次会话中在服务器端存储数据,记录用户状态的。在使用完成后,如何销毁Session数据,分为以下三步: 1. 清空$_SESSION中数据 2. 如果session是基于cookie的,则需将cookie中session的信息删除 3. 销毁当前会话中所有数据<?php//初始化会话session_start();//重置会话中的所有变量$_SESSION = ar原创 2017-03-31 10:30:28 · 407 阅读 · 0 评论 -
Yaf安装及配置
Yaf安装yaf框架是以php的扩展形式安装的,在安装之前要确定自己电脑上php版本、系统版本(32位、64位)以及Thread safe线程是否安全。原创 2016-02-05 22:33:06 · 1406 阅读 · 0 评论 -
查看PHP错误日志
想查看PHP错误日志,首先需要对php.ini进行配置,在php.ini中设置log_errors和error_log两项。log_errors:设置为On,表示将脚本运行的错误信息记录到日志中。error_log:用于设置错误日志的路径。注:服务器端配置时,还需要设置error_reporting和display_errors两项;error_reporting应该设置为E_AL原创 2016-01-11 14:18:27 · 4211 阅读 · 0 评论 -
PHP中日期的获取及转换
根据字符串得到DateTime对象1. 使用DateTime构造函数如:$date = new DateTime('2015-12-08 14:28:30');想得到当前日期: $date = new DateTime('now');2. 使用createFromFormat如:$date = DateTime::createFromFormat('Y-原创 2015-12-08 14:39:32 · 478 阅读 · 0 评论 -
substr字符串截取时出现乱码
使用substr截取英文字符串时是没有问题的,但是当截取中文字符串时就会出现乱码,原因是将一个中文分成了两个部分,如下图:代码: $value["title"] = substr($value["title"], 0,20);效果:上述情况可以用mb_substr解决,但是需要将php配置文件中扩展打开代码: //需要指定编码,不然也是错的 $value["t原创 2015-11-09 16:11:54 · 792 阅读 · 0 评论 -
php模拟HTTP协议请求
请求过程1. 与服务器建立连接(模拟的HTTP连接)fsockopen:与服务器建立连接,得到一个连接资源2. 发送HTTP协议(请求)请求行请求头空行请求数据发送内容,其实就是向建立好的连接写数据:fwrite3. 接收HTTP响应将结果取出来:fgetc/fgets/fread4. 关闭连接资源fclosephp模拟G转载 2015-10-26 16:02:03 · 437 阅读 · 0 评论 -
php模拟HTTP响应
利用php的header函数模拟HTTP响应,主要是修改http协议的响应头。以下介绍四种:跳转header("location:url");跳转到utl指定的页面;刷新header("refresh:刷新等待时间;[url=目标脚本]");如果不加url,等待指定时间后,当前页面刷新;加上url,等待指定时间后,跳转到目标脚本。发送图片想要向浏览器发送图片,需转载 2015-10-26 15:11:20 · 408 阅读 · 0 评论 -
PHP Ajax跨域问题解决方案
本文通过设置Access-Control-Allow-Origin来实现跨域。例如:客户端的域名是client.runoob.com,而请求的域名是server.runoob.com。如果直接使用ajax访问,会有以下错误:XMLHttpRequest cannot load http://server.runoob.com/server.php. No 'Access转载 2015-11-12 10:59:10 · 333 阅读 · 0 评论 -
php生成验证码
//生成验证码 public function checkCode() { $width = 100; $height= 30 ; //创建画布,默认背景颜色为黑色 $img = imagecreatetruecolor($width, $height); //指定字符串 $str = $this->randomString(4); //原创 2015-12-28 16:35:37 · 315 阅读 · 0 评论 -
分页类的使用
在项目中难免用到分页类,下面介绍我使用的分页类及使用流程。流程:1. 引入分页类2.设置记录总数和每页总数,实例化分页类3.设置查询语句sql,执行sql得到结果集4.设置分页的底栏代码: //1.得到记录总数 $model_manager = M('Manager'); $count = $model_manager->count(); //2.原创 2015-12-29 14:23:53 · 304 阅读 · 0 评论 -
window下pthreads扩展安装
一、检测pthreads版本下载要求需要通过phpinfo()查看以下几项内容:php版本:需要下载对应的版本Thread Safety:线程是否安全,如果为enabled,选择ts版;否则,选择nts版。Compiler:编译器版本二、根据上述三项选择对应pthreads版本window版本的pthread下载地址为:http://windows.php.net/转载 2016-01-04 16:26:06 · 1002 阅读 · 0 评论 -
外网访问apache下网站的问题
今天使用外网访问apache下一个网站时,不管输入什么网址,都显示下面一个内容:在网上查找方法时,说将httpd.conf中Allow from 127.0.0.1改为Allow from all,这里我早就改过了,所以排除这个问题;还有关闭防火墙也试了,不行;最后猜想可能是虚拟主机配置文件的问题,所以选择不加载httpd-vhosts.conf文件,即在httpd.conf注释这句话原创 2015-12-04 20:14:49 · 398 阅读 · 0 评论 -
获取网络上歌曲下载链接
最近做了一个demo,可以根据百度mp3接口获取歌曲的链接。在做的过程中,参考了以下两篇博文,写的很不错。http://mrasong.com/a/baidu-mp3-api百度mp3接口http://mrasong.com/a/baidu-mp3-api-full[新]百度mp3接口下面附上我的demo: class Music{ //只获取其中一条数据返回 //$q原创 2015-12-07 13:49:37 · 762 阅读 · 0 评论 -
PHP写一个函数,算出两个文件的相对路径
题目:写一个函数,算出两个文件的相对路径 如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; 计算出 $b 相对于 $a 的相对路径应该是../../c/d/e.php算法1: 思想:将$a和$b按照/分割成数组后,从前往后进行比较,与到第一个不同目录后,后面所有的目原创 2016-01-08 19:33:04 · 3465 阅读 · 0 评论 -
POST Content-Length of 65077906 bytes exceeds the limit of 52428800 bytes in Unknown on line 0
PHP上传时,当上传文件大小超过php.ini中配置阈值时,会出现上面警告,从$_FILES中无法取到上传的文件信息。解决办法① 打开php.ini,修改如下两行:# 上传文件的最大值upload_max_filesize = 100M# post提交时最大数据大小post_max_size = 100M② 重启web服务器(apache或者nginx)同时需要注意web服务器...原创 2018-11-21 17:44:59 · 1469 阅读 · 0 评论