PHP - 技术教程文章

php基础知识(每天分享一些以前的笔记希望能帮助自学的朋友)

php基础(第一天)php标签1、 要知道php是一种嵌入html文档的脚本语言;php语法格式是:<?php 想要写的内容 ?>红色体就是php的标签,注意这些标签都要在英式输入法输入。2、 php标签有四种:标准标签,脚本标签,短标签,ASP标签。 标准标签<?php echo ‘hello word’; 这就是最简单的输出hello word,注意看代码最尾段是以英式分号结束的 一个分号代表一行想要表达的代码,目前主要我们都是用标准标签来写代码。?> 脚本标签语...

thinkphp 安装【图】

如果用eclipse 工具 创建功能file --new --local PHP Project在location 设置 www目录下project name输入工程名在www下放thinkphp然后在shop目录下创建index.php引入thinkphp.php核心包代码如下<?phpinclude "../ThinkPHP/ThinkPHP/ThinkPHP.php";?>在浏览器上输入http://localhost/shop/index.phpthinkphp安装成功在shop目录下多了几个文件以后讲他们的应用 原文:http://www.cnblogs.com/chaochaophp/p/6351547.html

win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置【图】

一、说明  以前配置apache+php+mysql都是参考网上的,一般都没有什么问题。最近公司有个任务需要在工作电脑上配置apache+php+mysql, 于是到它们的各个官网上下载了最新的版本,按照网上一步一步走,但是发现并没有那么顺利,中间出了各种问题,到处找资料,还好最后都解决了,现在写下来给大家参考一下。  apache: http://httpd.apache.org/download.cgi   version: 2.4.18  php: http://www.php.net/downloads.php   ve...

php多进程编程实现与优化【代码】

PHP多进程API创建子进程@params void @returns int int pcntl_fork(void) 成功时,在父进程执行线程内返回产生的子进程PID,在子进程执行线程内返回0,失败时,在父进程上下文返回-1,不会创建子进程,并且会引发一个php错误获取当前进程id@params void @returns int int posix_getpid(void) 返回进程id,类型为整型父进程等待子进程退出@params $status@params $option@return bool int pcntl_wait(int &$status[,int $options=0]...

PHP实现CSV文件的导入和导出类【代码】

本文实例讲述了PHP实现CSV文件的导入和导出类。分享给大家供大家参考。具体如下: <?php /*** CSV 文件处理类*/ class Csv{public $csv_array; //csv数组数据public $csv_str; //csv文件数据public function __construct($param_arr, $column){$this->csv_array = $param_arr;$this->path = $path;$this->column = $column;}/*** 导出* */public function export(){if(empty($this->csv_array) || empty($this->column)){return fa...

php实现四种基本排序算法

排序数组:$arr(1,43,54,62,21,66,32,78,36,76,39); 用四种排序算法进行排序冒泡排序:(思路:对未排好序的数,从前往后两个数一次进行比较和调整,大的下沉,小的上升) $arr=array(1,43,54,62,21,66,32,78,36,76,39); function bubbleSort($arr) { $len=count($arr); //该层循环控制 需要冒泡的轮数 for($i=1;$i<$len;$i++) { //该层循环用来控制每轮 冒出一个数 需要比较的次数 for($k=0;$k<$len-$i;$k++) { if(...

辛星解读之php中的重点函数第一节之数组函数

这里我已经写好它的pdf版本了,比本博客更加适合阅读。首先说一下它在百度网盘的下载地址把:百度网盘下载 ,如果左边连接跪了,可以在浏览器中输入:http://pan.baidu.com/s/1qW5AYzM 来下载。然后说一下它在csdn的下载地址,是免积分的奥,下载地址:csdn资源下载处 ,如果连接不起作用,可以在浏览器输入:http://download.csdn.net/detail/xinguimeng/7697309 来手动下载。 好,我们知道php中函数还是很多的,正是这些函数...

php中的$_SERVER从哪来【代码】【图】

前几个月学了个tcpdump抓包命令,遇到任何问题总想试试,真是程序员的终级武器呀,它像显微镜一下,把任何的丑陋的bug都显示在你的面前。为什么有题目中所说的疑问呢?因为我发现在不同的环境下面,我获取到的$_SERVER["SERVER_NAME"]是不一样的。$_SERVER顾名思义,它是服务端的配置,所以我想应该跟nginx的配置有关吧。事实也是如此。验证方法一:很简单,透过现象来看,通过改变nginx的配置,然后在PHP中打印变量。server{liste...

php对象转数组的黑技术【代码】

通常在php中,想把对象处理成数组是需要花费点精力的。 但是今天在这里,我告诉你一个so easy的黑技术来解决这个问题。<?php /** * Created by PhpStorm. * User: zrj * Date: 17-10-20 * Time: 下午8:08 */ declare(strict_types=1);//开启强类型模式class Person { public $name; public $age; public function __construct(string $name,int $age) { $this->name = $name; $this->age =...

PHP(css样式)

布局页面的时候 大色块 小色块 ...(就是宽高) 内容布局:浮动,定位,显示,层级浮动:float(样式名):值:left right设一个父标签,设定宽高,里面随便浮动!!!!!!!!!!!!!!!!!超出部分:overflow hidden scorll overflow-x: overflow-y:盒子模型:从里到外:内容>内边距>边框>外边距对应样式:内容>padding>border>margin盒子模型的样式分上下左右:top left right botton、padding:>上右下...

php采用file_get_contents代替使用curl实例

本文实例讲述了php采用file_get_contents代替使用curl的方法,分享给大家供大家参考。具体实现方法如下:file_get_contents代替使用curl其实不多见了,但有时你碰到服务器不支持curl时我们可以使用file_get_contents代替使用curl,下面看个例子。当用尽一切办法发现 服务器真的无法使用curl时。或者curl不支持https时。curl https 出现502时。你又不想重装网站环境的时候,你就改用file_get_contents 代替吧。 curl 经常使用的 cur...

thinkphp-条件判断-if标签3【代码】

语法{if condition="表达式"} {if (表达式)} {if 表达式}示例1{if condition=" 1 == 2"}完全相等 {else}不相等 {/if}输出1不相等示例2{if (1 == 2)}完全相等 {else}不相等 {/if}输出2不相等示例3{if (1 == 2)}完全相等 {else}不相等 {/if}输出3{if 1 == 2}完全相等 {else}不相等 {/if}本文出自 “素颜” 博客,请务必保留此出处http://suyanzhu.blog.51cto.com/8050189/1897225原文:http://suyanzhu.blog.51cto.com/8050189/18972...

安装php xdebug调试工具及性能分析工具webgrind for windows【图】

安装php xdebug调试工具及性能分析工具webgrind for windows 第一步:查看php版本等信息phpinfo();上面是 x86 NTS VC14 第二步: 下载xdebug官网https://xdebug.org/ 第三步: 下载扩展, 放入php的/ext 扩展目录 第四步: php.ini 开启扩展 配置其它选项:[Xdebug] ;指定Xdebug扩展文件的绝对路径zend_extension="C:\App\php\php\php-7.0.12-nts\ext\php_xdebug-2.7.0alpha1-7.0-vc14-nts.dll";最大循环或调试次数,防止死循环xdebu...

用php来限制每个ip每天浏览页面数量的实现思路

实现思路:首先,创建一个表,比如下面的复制代码 代码如下:CREATE TABLE ip_log(ip_log_ip VARCHAR(40),ip_log_date DATE,ip_log_visits TINYINT(1),ip_log_page varchar(255),PRIMARY KEY(ip_log_page,ip_log_ip,ip_log_date),);  然后,写代码,当用户访问时记录下ip信息,浏览次数初始值为1,  当浏览页数等于设置的值时,不允许用户访问。  最后你可以每天晚上00:00运行一个cron表中删除所有数据,比如使用truncate原文:...

PhPStorm 快捷键使用(转载)【图】

PhPStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能。Phpstrom的一款名为Magicento的插件对快速创建Magento插件十分有用。常用快捷键 设置快捷键:File -> Settings -> IDE Settings -> Keymap -> 选择“eclipse” -> 然后“Copy”一份 -> 再个性化设置(自己习惯的)快捷键常用快捷键(keymaps:Default情况下)Esc键编辑器(从工具窗口)...

PHP学习笔记:用php读取xml文件【代码】【图】

xml已经被json逐渐替代,现在用的api都是用貌似用的json,但是有些老的网站还是在用xml。  这里默认xml文件为:address.xml,存放在和读取的php文件相同级别目录,xml内容如下:<?xml version="1.0" encoding="utf-8"?> <note><name>简庆旺</name><address>福建省漳州市南靖县梅林镇官洋村</address><tel>17095921320</tel><code>363609</code><school><highschool><name>永定一中</name><address>福建省龙岩市永定区91路</addre...

自学 PHP,如何不走弯路?

1.一本好书至关重要。如果这本书的知识非常深入,那么还是不要看了。对初学者来说只能是打击。因为很多东西都看不懂。一本知识较为浅显,并且说明非常详细,但是能让你上手的基础知识又非常完善的书籍就非常好。(推荐php红宝书)2.理顺学习流程。php本身的实践重点是web。以后深入了可以用作其他用处。而写出一个能看的web必然与html和css密切关联。所以,首先,了解html+css+js的知识是非常重要的。(很多中小公司html+css+js+ph...

PHP的global和$GLOBALS的区别【代码】

global是关键字,通常添加在变量前,可以使变量的作用域为全局。 $GLOBALS预定义的超全局变量,把变量扔到里面一样可以变成全局变量。 $GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。global $var : 指函数外部同名变量的引用$GLOBALS[‘var‘] : 指函数外部变量本身$a = 100; function one(){global $a;unset($a); } on...

PHP 扩展相关

外国三篇http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/#Heading1http://devzone.zend.com/317/extension-writing-part-ii-parameters-arrays-and-zvals/http://devzone.zend.com/446/extension-writing-part-iii-resources/国内http://www.open-open.com/lib/view/open1392188698114.html原文:http://gaojy.blog.51cto.com/4980848/1729292

PHP+Mysql+jQuery实现发布微博程序 jQuery篇

该应用实现了即时统计输入字数,并且通过ajax与后台交互,将输入内容插入到话题列表中。我将整个流程分为两部分,本文讲解第一部分jquery实现前端交互操作。 首先查看示例:DEMOXHTML 复制代码 代码如下:<form id="myform" action="" method="post"> <h3><span class="counter">140</span>说说你正在做什么...</h3> <textarea name="saytxt" id="saytxt" class="input" rows="2" cols="40"></textarea> <p> <input type="image" s...

PHP接口类interface的正确使用方法【代码】

对于那些初学PHP语言的人来说,对于PHP的接口类也许了解的还不是很深入,接下来我们就来具体讲述PHP接口类interface的使用方法。如何正确运用PHP XMLReader解析XML文档深入解读PHP DOMXPath在进行XML文件解析推荐几款功能强大的PHP模板引擎PHP使用技巧的要点分析如何正确使用PHP DOM-XML创建XML文件 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现...

Windows下给PHP安装redis扩展【代码】【图】

一、选择适合的版本二、下载扩展官网下载地址:http://pecl.php.net/package/redis ,选择合适的版本进行下载三、解压后将下面两个文件复制到PHP扩展文件目录(ext文件夹)四、修改php.ini添加extension=php_redis.dll 五、检查是否安装成功:重启Apache或Nginx,再次查看phpinfo() 原文:https://www.cnblogs.com/jxl1996/p/10187425.html

php报错日志:PHP Deprecated:Automatically populating $HTTP_RAW_POST_DATA is deprecated

前几天将线上php服务升级到5.6.x版本后,php-error.log报出错误:PHP Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated 原因:上面的报错意思是“自动变量$HTTP_RAW_POST_DATA已过时(deprecated)”这个问题和PHP版本有关系,PHP5.6之后的高版本都已废弃了$HTTP_RAW_POST_DATA这个全局变量设置,可以使用 php://input 替代 $HTTP_RAW_POST_DATA。使用always_populate_raw_post_data会导致在填充$HTTP_RAW...

PHP socket网络编程之使用curl

PHPsocket 网络编程之使用cURLcURl代表客户端URL,是一种专门处理URL的命令行工具。本文介绍cURl打开网页并向其提交数据。【示例】:cURL库被PHP用于向页面传递数据<?PHP//创建cURL事务$url = 'HTTP://localhost/service.php';$curl = curl_init($url);//如果发生错误,直接运行失败curl_setopt($curl,CURLOPT_FAILONERROR,1);//支持重定向curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);//设置是否将处理结果存入一个变量的选项cur...

centos7下搭建nginx+php7.1+mariadb+memcached+redis【代码】

一.环境准备1.首先介绍一下环境,以及我们今天的主角们我用的环境是最小化安装的centos7,mariadb(江湖传言mysql被oracle收购后,人们担心像java一样毁在oracle手上于是成了新的分支,但是还是像mysql一样用),php7.1.0(版本无所谓,都是7版本),nginx1.10(我们安装的是稳定版而没有一味的追求新),memcached,和redis可以随机选择一个,当然全安装也没有干扰2.软件包下载1)mariadb软件包(yum安装,编译安装因为boost问题挂...

PHP去除BOM头的方法【代码】

BOM头是UTF-8来告诉编辑器:我是UTF8编码。它的编码是\xEF\xBB\xBF但是PHP在设计之初并没有考虑到BOM头的问题,所以在编解码的时候很容易出现问题$result = trim($result, "\xEF\xBB\xBF"); print_r(json_decode($result, true)); exit;还有一种比较矬: 1 2 3 4 5$result = @iconv("UTF-8", "GBK//IGNORE", $result); $result = @iconv("GBK", "UTF-8//IGNORE", $result);print_r(json_decode($result, true)); exit; 原文:http:...

PHP json字符串对特殊字符处理(单引号,双引号)

前言:form表单用POST,GET等方式提交数据到后台,后台用PHP接收提交的数据含有 “"”、“‘",“\”(双引号,单引号,反斜线),新版PHP(magic_quotes_gpc 在php.ini 设置为ON时,自动addslashes()进行转义。5.3废弃,5.4移除,都需要自己用addslashes()进行转义)都需要自己用addslashes()添加转义。 PHP接受的form表单提交过来的数据,需先用stripcslashes()进行转义后在用addslashes()转义,再插入数据库。 用addslashes()...

php 使用 生成器 yield关键字 处理 万级以上csv 文件,并重新导出【代码】

前几天有个任务是要解密excel中某个字段,本来是一个非常简单的事情,但问题是用phpexcel一直load不了excel,无论运行时间设置为不限,内存也增加到了2048M,仍然不行,最后各种问度娘,最后想到了前段时间看的生成器 yield, 刚好是一个测试的机会class Qushu {publicfunction getDg(){set_time_limit(0);$file = request()->get(‘file‘);$path = ‘D:/path/‘.$file.‘.csv‘;$key = ‘********‘;$header = [‘订单‘,‘姓名‘...

thinkphp之migration 迁移文件的使用【代码】

创建迁移类,首字母必须为大写php think migrate:create Users 可以看到目录下有新文件 .\database\migrations\20161117144043_users.php使用实例<?phpuse Phinx\Migration\AbstractMigration;class Users extends AbstractMigration {/*** Change Method.*/publicfunction change(){// create the table$table = $this->table(‘users‘,array(‘engine‘=>‘MyISAM‘));$table->addColumn(‘username‘, ‘string‘,array(‘limi...

PHP array_walk() 函数详解【代码】

定义array_walk - 对数组的每个元素应用自定义函数描述array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] ) : bool 回调函数的参数,第一个是元素值,第二个是元素键名,第三个是可选的 $userdata。如果只想改变数组值,第一个参数可使用引用传递,即在参数前加上 &。示例<?php$fruits = array("a" => "orange", "b" => "banana", "c" => "apple");function test_alter(&$item1, $key, $prefix){$item...