PHP - 技术教程文章

PHP防止注入攻击实例分析

本文以实例形式详细分析了PHP防止注入攻击的方法。分享给大家供大家参考。具体分析如下:PHP addslashes() 函数--单撇号加斜线转义PHP String 函数定义和用法addslashes() 函数在指定的预定义字符前添加反斜杠。 这些预定义字符是: 单引号 (‘) 双引号 (") 反斜杠 (\) NULL 语法:addslashes(string)参数 描述string必需。规定要检查的字符串。提示和注释提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备合...

PHP对象的基础总结!

近来参加了几场PHP工程师的面试,但是笔试题答得都不理想,回来总结了一下失败的原因,是没看PHP手册。几家公司的PHP基础面试题都可以在PHP手册上找到。哎,现在才知道最好的面试宝典是PHP手册。 下面是一些PHP面向对象基础知识的摘录,摘录内容来自PHP5.1手册。1.类的变量成员叫做“属性”,或者叫“字段”、“特征”,在本文档统一称为“属性”。2.属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指ph...

PHP+Swoole及时通讯【代码】

pecl install swooleCan‘t find PHP headers in /usr/include/php The php-devel package is required for use of this commandyum install php-devel原文:http://caixia.blog.51cto.com/2266345/1767498

php7.1 扩展安装memcache 扩展

wget https://github.com/websupport-sk/pecl-memcache/archive/NON_BLOCKING_IO_php7.zip unzip NON_BLOCKING_IO_php7.zip cd pecl-memcache-NON_BLOCKING_IO_php7/ /usr/local/Cellar/php@7.1/7.1.20/bin/phpize ./configure --enable-memcache --with-php-config=/usr/local/Cellar/php@7.1/7.1.20/bin/php-config make make install 然后把extension = "/usr/local/Cellar/php@7.1/7.1.20/pecl/20160303/memcache.so" 添加...

PHP中 GET 与 POST

GET 数据请求<span style="font-size:18px;">$url = "http://www.xxxx.com?user=111"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $out = curl_exec($ch); curl_close($ch); $obj = json_decode($out); print $obj;</span>POST 数据发送<span style="font-size:18px;">$url = "http://www.xxxx.com?user=111"; $post_data = "s...

php设计模式--装饰器模式【代码】

包装对象 扩展实例。interface IComponent {function Display(); }class Person implements IComponent {private$name;function __construct($name){$this->name = $name;}function Display(){echo "装扮的:{$this->name}<br/>";} }class clothes implements IComponent {protected$component;function Decorate(IComponent $component){$this->component = $component;}publicfunction Display(){if (!empty($this->component)) ...

PHP 的__call()

PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在或被权限控制中的方法,__call 方法将会被自动调用。例七:__call[html]view plaincopyprint?<?php class foo { function __call($name,$arguments) { print("Did you call me? I‘m $name!"); } } $x = new foo(); $x->doStuff(); $x->fancy_stuff(); ?> 原文:http://www.cnblogs.com/wangluoch...

使用composer安装thinkphp[全局安装]【代码】

1、进入CMD,参阅:https://www.phpcomposer.com 的入门指南curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer注意: 如果上诉命令因为权限执行失败, 请使用 sudo 再次尝试运行 mv 那行命令。现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar。全局安装 (on OSX via homebrew)Composer 是 homebrew-php 项目的一部分。brew update brew tap josegonza...

php 使用redis锁限制并发访问类【代码】

1.并发访问限制问题对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。例如换领优惠券,如果用户同一时间并发提交换领码,在没有加锁限制的情况下,用户则可以使用同一个换领码同时兑换到多张优惠券。伪代码如下:if A(可以换领)B(执行换领)C(更新为已换领)D(结束)如果用户并发提交换领码,都能通过可以换领(A)的判断,因为必须有一个执行换领(B)后,才会更新为...

thinkphp5 链式操作alias别名用法

alias用于设置当前数据表的别名,便于使用其他的连贯操作例如join方法等。 示例:Db::table(‘think_user‘)->alias(‘a‘)->join(‘DEPT b ‘,‘b.user_id= a.id‘)->select();最终生成的SQL语句类似于:SELECT * FROM think_user a INNER JOIN think_dept b ON b.user_id= a.idv5.0.2+版本开始,可以传入数组批量设置数据表以及别名,例如:Db::table(‘think_user‘)->alias([‘think_user‘=>‘user‘,‘think_dept‘=>‘www.9...

PHP输入流php://input与$_POST、$_GET

Content-Type的取值会影响php的输入流学习笔记1,Content-Type仅在取值为application/x-www-data-urlencoded和multipart/form-data两种情况下,PHP才会将http请求数据包中相应的数据填入全局变量$_POST2,PHP不能识别的Content-Type类型的时候,会将http请求包中相应的数据填入变量$HTTP_RAW_POST_DATA3, 只有Coentent-Type不为multipart/form-data的时候,PHP不会将http请求数据包中的相应数据填入php://input,否则其它情况都会...

PHP中使用strpos函数实现屏蔽敏感关键字功能

现在网络信息监管很严格,特别是屏蔽关键字。特别是现在WEB2.0时代,网站的内容几乎都是来自网民发布,站长管理即可。如果你希望别人在你站点禁止发布某个关键字,那么就需要预先做处理。用PHP做关键字屏蔽的功能样式有多种多样,如正则是最普遍的一种,这里就不一一例举,本文介绍使用PHP函数strpos屏蔽关键字的功能。思路:一、把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少。 二、PHP读取关键字文本,存入...

php+mysqli批量查询多张表数据的方法

本文实例讲述了php+mysqli批量查询多张表数据的方法。分享给大家供大家参考。具体实现方法如下:注意这里使用到了两个新的函数multi_query与store_result,具体代码如下:复制代码 代码如下:<?php //1、创建数据库连接对象 $mysqli = new MySQLi("localhost","root","123456","liuyan"); if($mysqli->connect_error){ die($mysqli->connect_error); } $mysqli->query("set names ‘GBK‘"); //2、查询多个数据库表 $sqls = "selec...

PHP开发环境简析

单工作机情况windows + wampwindows + XShell类终端工具 + linux虚拟机Ubuntu桌面版 自带终端Mac OS + mampMac OS 自带终端Mac OS + linux虚拟机多工作机情况工作机 + 局域网开发机总结咱遇到的各种开发环境的搭配通常是以上几种。单工作机和多工作机这说法是咱自己总结的。这几种情况咱都经历过。wamp和mpmp都是一键安装的开发环境,集成服务器、数据库等软件。优点是简单,但是不好个性配置。比如安装各种扩展就麻烦死了。经历了...

php开发者常犯的10个MySQL

一、平静的心态和所有程序员一样,要写一手好的程序,没有好的心态是不行的。遇事不可急躁,不可轻言放弃。在程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有碰到过,于是不可太过急躁,应 该逐个排查问题的最初源泉,将其干掉。急躁的心态去开发系统是对项目的一种不负责。急躁会让人学会将就,让人学会逃避。而我个人北京两年的简单生活,给我 其中一个最大的历...

php中(foreach)用法介绍

foreach ($array as $key => $value)foreach 仅能用于数组,每次循环中,当前单元的键名也会在每次循环中被赋给变量 $key。当前单元的值被赋给 $value 并且数组内部的指针向前移一步。<?php$arr=array(0=>"你好",1=>"世界",2=>"朋友");//var_dump($arr);foreach ($arr as $key=>$vol){echo "这个是键值对".$key."的结果----".$vol."<br/>";}?>原文:http://duai2010.blog.51cto.com/1591629/1707339

php两种实现守护进程的方式

第一种方式,借助 nohup 和 & 配合使用。在命令后面加上 & 符号, 可以让启动的进程转到后台运行,而不占用控制台,控制台还可以再运行其他命令,这里我使用一个while死循环来做演示,代码如下<?phpwhile(true){ echo time().PHP_EOL; sleep(3);}用 & 方式来启动该进程[root@localhost php]# php deadloop.php &[1] 3454[root@localhost php]# ps aux | grep 3454root 3454 0.0 0.8 284544 8452 pts/0 T...

PHP文件下载【代码】【图】

文件下载 1 <?php2$fileName="tony.jpeg";3//判断文件存在否,如果不存在,程序中断执行 4if(!file_exists($fileName)){5die("文件不存在");6 }7//打开文件 8$fp=fopen($fileName,"r");9//获取下载文件大小10$fileSize=filesize($fileName); 11//下载文件需要的头12header("Content-type: application/octet-stream"); 13header("Accept-Ranges: bytes"); 14header("Accept-Length: $fileSize"); 15//客户端弹出对话框,对应的文...

PHP控制网页过期时间的代码

当然,前提要先打开CDN中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成If-Modified-Since .所以我们写程序主要是对If-Modified-Since控制就好了.记的,缓存系统架构中计中最好是后端来控制,所以最好的方法是程序来管理过期. 呵,我只会php,就用php写一个,别的程序也是一样。 见我下面的程序,呵呵,5分钟过期. 复制代码 代码如下:<?php $headers = apache_request_headers(); $client_time ...

常用的几个PHP加密函数

1、前言PHP加密方式分为单项散列加密,对称加密,非对称加密这几类。  像常用的MD5、hash、crypt、sha1这种就是单项散列加密,单项散列加密是不可逆的。  像URL编码、base64编码这种就是对称加密,是可逆的,就是说加密解密都是用的同一秘钥。  除此外就是非对称加密,加密和解密的秘钥不是同一个,如果从安全性而言,加密的信息如果还想着再解密回来,非对称加密无疑是最为安全的方式。 2、不可逆加密函数(一)、md5string...

php-mysql管理利器 adminer【图】

简介:adminer类似于phpMyAdmin,用于MySQL管理客户端。整个程序只有一个PHP文件,易于使用和安装。Adminer支持多语言(已自 带11种翻译语言文件,可以按自己的需求翻译相应的语言)。支持PHP4.3+,MySQL 4.1+以上的版本。Adminer KO phpMyAdmin: http://www.adminer.org/en/phpmyadmin/ E文的,就是为了取代phpMyAdmin而生下载地址:http://pan.baidu.com/s/1o6Jm9xo ,亦可去官网下载:http://www.adminer.org/使用方法:.将adm...

LNMP环境搭建(linux+Nginx + Mysql + PHP)【图】

linux+Nginx + Mysql + PHP 搭配可以说目前使用比较广泛那要想在这台刚安装好系统的服务器上配置这环境,有多种方式 一、傻瓜式一键安装为了让大家安装环境能简单,方便。有人把它们集成了一个包。1、LNMP一键安装包网址:lnmp.org,里面介绍一些要求,功能等进入到安装页面说明,找到相关的安装说明,运行,然后一步一步按照操作就行了,比较简单2、使用宝塔,这是更加傻瓜,方便的一款工具,操作服务,只需在网站后台,点点鼠标,...

PHP用CURL伪造IP和来源【代码】【图】

以前没有这么搞过。今天群里一个朋友在问这个问题。查了下,CURL确实很强悍的可以伪造IP和来源。1.php 请求 2.php 。1.php代码:$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://localhost/2.php"); curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘X-FORWARDED-FOR:8.8.8.8‘, ‘CLIENT-IP:8.8.8.8‘)); //构造IP curl_setopt($ch, CURLOPT_REFERER, "http://www.gosoa.com.cn/ "); //构造来路 curl_setopt($ch, CUR...

CentOS7上安装并配置Nginx、PHP、MySql【代码】【图】

一、Nginx 1、安装nginxyum install nginx2、启动nginxsystemctl start nginx除了systemctl start nginx之外,常用的相关命令还有systemctl stop nginx、systemctl restart nginx、systemctl status nginx3、测试nginx是否安装成功 浏览器输入ip地址或者域名(已经解析过的域名),如下图所示,则安装成功。 4,配置Nginx支持PHP解析 编辑/etc/nginx/nginx.conf,蓝色字体处为新加内容 server { listen 80 def...

php数组使用小结【代码】【图】

在PHP中,数组分为两类:索引数组和关联数组。二者可以单独使用,也可以混合使用。 1、一维数组 一维数组的定义也很简单,常用的有如下两种方式: 1.1 直接赋值 1: <?php 3: $dwqs[1] = "我的博客:"; 5: $dwqs[3] = "程序爱好者:"; 7: $dwqs[5] = "欢迎你的加入"; 1.2 Array()构建数组 1: <?php 3: ?> 2、多维数组 以关联数组为例 1: <?php 3:"编号" => array(1,2,3),array("独立博客...

PHP学习笔记【代码】

目录PHP学习数据类型整形(integer)布尔型(boolean)浮点型(float)字符型(string)Array数组资源(resource)NULL类型转换变量基础预定义变量变量范围可变变量常量define()函数const关键字(PHP 5.3.0 以后)魔术常量运算符控制结构if...elseelseif/else ifwhiledo-whileforforeachbreakcontinueswitchdeclarereturninclude函数函数的参数函数的返回值可变函数匿名函数类与对象基本概念属性类常量构造函数析构函数访问控制对象继承范围解...

090-PHP数组过滤函数array_filter【代码】【图】

<?phpfunction odd($x){ //定义过滤偶数的函数if($x%2==1)returnTRUE;}function even($x){ //定义过滤奇数的函数if($x%2==0)returnTRUE;}$arr=array(1,2,3,123,35,47,58,103,116); //定义一个数组echo ‘过滤前的数组信息:<br />‘;print_r($arr);echo ‘<br />过滤掉偶数后的数组信息:<br />‘;print_r(array_filter($arr,‘odd‘)); //调用函数对数组进行过滤echo ‘<br />过滤掉奇数后的...

斯坦福大学公开课机器学习: advice for applying machine learning - evaluatin a phpothesis(怎么评估学习算法得到的假设以及如何防止过拟合或欠拟合)【图】

怎样评价我们的学习算法得到的假设以及如何防止过拟合和欠拟合的问题。当我们确定学习算法的参数时,我们考虑的是选择参数来使训练误差最小化。有人认为,得到一个很小的训练误差一定是一件好事。但其实,仅仅是因为这个假设具有很小的训练误差,当将其样本量扩大时,会发现训练误差变大了,这说明它不是一个好的假设。比如下图,拟合的非常好,一旦样本量改变,其训练误差随之增大。 那么我们如何判断一个假设是否是过拟合的呢?...

php 团购折扣计算公式

复制代码 代码如下:$price=$row[‘price‘]; //原价 $nowprice=$row[‘nowprice‘]; //现价 $jiesheng=$price-$nowprice; //节省金额 //$discount折扣计算 if ( $nowprice > 0 ) { $discount = round(10 / ($price / $nowprice), 1); } else { $discount = 0; } if ( $discount <= 0 ) $discount = 0; 完整代码:复制代码 代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/D...

php计算整个目录大小的方法【代码】

本文实例讲述了php计算整个目录大小的方法。分享给大家供大家参考。具体实现方法如下: /*** Calculate the full size of a directory** @author Jonas John* @version 0.2* @link http://www.jonasjohn.de/snippets/php/dir-size.htm* @param string $DirectoryPath Directory path*/ function CalcDirectorySize($DirectoryPath) {// I reccomend using a normalize_path function here// to make sure $DirectoryPa...