PHP - 技术教程文章

迪菲-赫尔曼密钥交换(Diffie–Hellman)算法原理和PHP实现版【代码】

迪菲-赫尔曼(Diffie–Hellman)是一个可以让双方在不安全的公共信道上建立秘钥的一种算法,双方后期就可以利用这个秘钥加密(如RC4)内容。 迪菲-赫尔曼(Diffie–Hellman)算法原理很简单:如上原理,最后很容易通过数学原理证明(g^b%p)^a%p = (g^a%p)^b%p,因此它们得到一个相同的密钥。 上面除了a,b和最后得出的公共密钥是秘密的,其它都是可以在公共信道上传递。实际运用中p很大(300位以上),g通常取2或5。那么几乎不可能从p,g和g...

PHP中include和require的区别详解

1、概要   require()语句的性能与include()相类似,都是包括并运行指定文件。不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换require()语句)。这就意味着如果可能执行多次的代码,则使用require()效率比较高。另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句。  require的使用方法...

PHP过滤各种HTML标签【代码】

$str=preg_replace("/<\s*img\s+[^>]*?src\s*=\s*(\‘|\")(.*?)\\1[^>]*?\/?\s*>/i", " ", $str); //过滤img标签$str=preg_replace("/\s+/", " ", $str); //过滤多余回车$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)$str=preg_replace("/<\!--.*?-->/si","",$str); //注释$str=preg_replace("/<(\!.*?)>/si","",$str); //过滤DOCTYPE$str=preg_replace("/<(\/?html.*?)>/si","",$str); //过滤html标签$st...

php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]

登录原理还是蛮复杂的,像我这样以为curl获取页面再post上去的想法真是太单纯了。 整理下遇到的价格处理字符串的函数: 复制代码 代码如下:<?php $encryption = "username"; echo base64_encode ($encryption);//echo "dXNlcm5hbWU= "; echo "<br>"; echo urlencode("http://".$encryption);//echo " http%3A%2F%2Fusername "; echo "<br>"; echo sha1($encryption);//echo "249ba36000029bbe97499c03db5a9001f6b734ec" echo "<br>...

基于GD2图形库的PHP生成图片缩略图类代码分享【代码】

要使用PHP生成图片缩略图,要保证你的PHP服务器安装了GD2图形库 使用一个类生成图片的缩略图1.使用方法 $resizeimage = new resizeimage("图片源文件地址", "200", "100", "0","缩略图地址"); //就只用上面的一句话,就能生成缩略图,其中,源文件和缩略图地址可以相同,200,100分别代表宽和高 2. 缩略图类代码 //使用如下类就可以生成图片缩略图,<?php class resizeimage {//图片类型var $type;//实际宽度var $width;//实际高度var $he...

php图片转base64并保存为文本【代码】

base64 加密成图片1$imgtxt = file_get_content(‘test.jpg‘); 23 file_put_content(‘test.txt‘, base64_encode($imgtxt)); 解密成图片1$img = base64_decode($imgdata_base64); 2file_put_contents(‘./test.jpg‘, $img); 原文:http://www.cnblogs.com/xiaolang1/p/4320582.html

【图片二进制接受】php【代码】

$filename = intval ( $_GET [‘id‘] ) . ‘.jpg‘;$xmlstr = $GLOBALS [‘HTTP_RAW_POST_DATA‘];if (empty ( $xmlstr )) {$xmlstr = file_get_contents ( ‘php://input‘ );}if (! $xmlstr) {exit ( ‘没有接收到数据流.‘ );} // by www.jbxue.com$jpg = $xmlstr; // 得到post过来的二进制原始数据$file = fopen ( "./Uploads/a/$filename", "w" ); // 打开文件准备写入fwrite ( $file, $jpg ); // 写入fclose ( $file ); // ...

使用ThinkPHP框架高速开发站点(多图)

<SPAN style=‘font-family: "Microsoft YaHei"; background-color: rgb(255, 255, 255);‘>使用ThinkPHP框架高速搭建站点<SPAN style=‘font-family: "Microsoft YaHei"; font-size: 16px;‘> <SPAN style=‘font-family: "Microsoft YaHei"; font-size: 16px;‘> 这一周一直忙于做实验室的站点,基本功能算是完毕了。比較有收获的是大概了解了ThinkPHP框架。写一些东西留作纪念吧。假设对于相同是Web方面新手的你有一丝...

php 编写接口的规范【代码】

一. 接口按请求人可以分为两种:  一种是被其他内部项目调用的接口(包括js异步请求的接口和定时程序)。  另一种是对外的接口,主要提供给外部开发者调用的。 两种接口最大区别就是,内部接口不需要太严格的身份验证,而对外接口需要严格的身份验证,加密解密方式各种各样,其中最常见最简单的就是http basic验证,例如我们的大后台弹出的账号和密码弹窗 就是用了basic验证,输入账号和密码才能通过验证。但是如果内部接...

php 访问目录,文件【代码】

$rootDir = ‘./lib/Controller/Topic‘; $dirScan = scandir($rootDir);$urls = array(); $c = ‘Topic_‘; foreach ($dirScanas$secDir) {if (in_array($secDir, array(‘.‘, ‘..‘, ‘.svn‘))) {continue;}$dir = $rootDir . ‘/‘ . $secDir;$fdir = opendir($dir);while ($path = readdir($fdir)) {if (in_array($path, array(‘.‘, ‘..‘, ‘.svn‘))) {continue;}$filename = $dir . ‘/‘ . $path; // if (is_...

ThinkPHP框架下,jq实现在div中添加标签并且div的大小会随之变化【图】

php初学者,有什么不对的还请指正。首先是在html页面中用jq实现添加标签:divAchivePersonnal是select所在的div的外层div,divselectAchivePersonnal是select的最近一层div,info内是字符串拼接,jq标签插入用append方法。接下来是调整css样式,使div会随着标签增加而加大,这里要用一个css属性overflow(亲自查),这里直接在divselectAchivePersonnal使用时不会达到你想要的效果,所以至少要有两个嵌套的div,在直接关联div的外层...

php中通过curl模拟登陆discuz论坛的实现代码

libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。 php的curl真的是相当好用,网上一搜索相关文章都是关于curl模拟登陆的,很少人提供模拟discuz发贴的源码。 复制代码 代码如下:<?php $discuz_url = ‘http://127.0.0.1/discuz/‘;//论坛地址 $login_url = $discuz_url .‘logging.php?action=login‘;//登录页地址 $post_fi...

[PHP] 浅谈 Laravel auth:api 不同驱动 token 和 passport 的区别

token 驱动使用 TokenGuard 用传递的值去用户表中查询 member_token 字段的值,看是否有匹配的。服务端需要在用户表中存储 access_token。 passport 驱动是 laravel/passport 组件包提供的,通过 Bearer Token Validator 对传递的值进行 JWT 验证,看是否解析出的值能匹配到数据库中的 auth_access_token_id。服务端不需要存储 access_token,相对安全。另外,laravel/passport 既支持自己的密码型应用也支持第三方 oauth2 型应用,...

PHP学习之整理字符串

1. 访问单个字符在PHP中,可以把字符串当成一个字符的数组,可以直接用数组的访问方法来访问字符串。如$str[0]。在这里要注意的是,如果字符是ASCII码以外时,访问会有问题。因为这种访问只能取得一个字节。 2. 删除空白字符在PHP中,可以用trim(), ltrim(), rtrim()三个函数来删除字符串开头或结尾的空白字符。其中,trim()用于删除字符前后的空白字符;ltrim()用于删除字符左侧的空白字符;rtrim()用于删除字符右侧的空白字符。...

PHP MySQL Where 子句【代码】

PHP MySQL Where 子句WHERE 子句用于过滤记录。WHERE 子句WHERE 子句用于提取满足指定标准的的记录。语法SELECT column_name(s) FROM table_name WHERE column_name operator value 如需学习更多关于 SQL 的知识,请访问我们的 SQL 教程。为了让 PHP 执行上面的语句,我们必须使用 mysqli_query() 函数。该函数用于向 MySQL 连接发送查询或命令。实例下面的实例将从 "Persons" 表中选取所有 FirstName=‘Peter‘ 的行:<?php $con=...

PHP+MySQL登录注册,完整版,详细注释【代码】【图】

纯手写打造。下载地址:http://download.csdn.net/detail/qq_33599520/9779970项目结构:下面是代码:<!DOCTYPE html> <html lang="cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>后台登陆</title> <link href="css/login.css" type="text/css" rel="stylesheet"> <script type="text/javascript" src="js/login.js"></script> </head> <body><div class="login"><div class="message"...

php后门URL的防范

例如,下面WEB应用可能向登入用户显示敏感信息:复制代码 代码如下:<?php$authenticated = FALSE;$authenticated = check_auth();if ($authenticated){ include ‘./sensitive.php‘;}?>由于sensitive.php位于网站主目录下,用浏览器能跳过验证机制直接访问到该文件。这是由于在网站主目录下的所有文件都有一个相应的URL地址。在某些情况下,这些脚本可能执行一个重要的操作,这就增大了风险。为了防止后门URL,你需要确认把所有...

php使用Jpgraph绘制柱形图的方法【代码】

本文实例讲述了php使用Jpgraph绘制柱形图的方法。分享给大家供大家参考。具体实现方法如下: <?php include ("src/jpgraph.php"); include ("src/jpgraph_bar.php"); $data = array(19,23,34,38,45,67,71,78,85,87,90,96); //定义数组 $graph = new Graph(400,300); //创建新的Graph对象 $graph->SetScale("textlin"); $graph->SetShadow(); //设置阴影 $graph->img->SetMargin(40,30,20,40); //设置边距 $...

thinkPHP

官网:http://www.thinkphp.cn/API:http://doc.thinkphp.cn/论坛:1.http://www.ithinkphp.com/原文:http://www.cnblogs.com/h07061108/p/thinkPHP.html

thinkphp5 +elasticsearch【代码】

php7使用elasticsearch1、安装官网下载地址:https://www.elastic.co/downloads/elasticsearch# 解压到非root目录,运行时使用非root账号且必须安装java环境yum install javawget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gztar zxvf elasticsearch-6.2.3.tar.gzuseradd elasticsearchpassword elasticsearchchown elasticsearch:elasticsearch elasticsearch-6.2.3cd elasticsearch-6.2.3n...

PHP即时实时输出内容【代码】

一般情况下,PHP都是将整个页面全部执行完成后,才会把要输出的内容发送回客户端。for ($i = 0; $i < 10; $i++) {echo $i;sleep(1); }这段代码会在十秒后输出“-12345678910”,如果要实现每秒实时输出一位可用以下两种方式:第一种设置执行时间不限时set_time_limit(0);清除并关闭缓冲,输出到浏览器之前使用这个函数。ob_end_clean();控制隐式缓冲泻出,默认off,打开时,对每个 print/echo 或者输出命令的结果都发送到浏览器。o...

Linux 安装php【代码】

1.下载安装云安装yum install php //安装php(云安装的版本php5,其他版本需要手动下载安装)手动: php版本 http://www.php.net/downloads.php 原文:https://www.cnblogs.com/wesky/p/9062091.html

thinkphp3.2笔记(2)调试模式,配置项C,创建模块, 四种URL模式【图】

一、调试模式TP的调试模式其实就控制了TP关于配置信息以及函数的缓存功能如果开启了调试模式,每次访问项目,Tp都会去加载最新的配置以及函数信息。如果关闭了调试模式,当tp第一次访问时会降配置以及函数信息保存到一个文件common-->runtime.php,后续每次访问都直接读取这文件。开启调试方式,必须写在加载tp框架之前define(‘APP_DEBUG‘,TRUE);二、配置项1. tp默认配置文件, Thinkphp =>Conf=>convention.php2. 公共模块...

在mac os 10.9上部署Apache+PHP+Mysql开发环境

具体步骤参考:~OS X Mountain Lion 系统配置 Apache+Mysql+PHP 详细教程 | 果迷网http://www.guomii.com/posts/30136~Mac OS X 10.9 启用 Web 服务器 ? 任平生的学习笔记http://note.rpsh.net/posts/2013/11/27/osx-10-9-apache-server-php-mysql官方文档:~PHP: 使用内置的 PHP - Manualhttp://php.net/manual/zh/install.macosx.bundled.php下面两篇文章很详细,照着做基本就ok了~How to install configure Apache, MySQL a...

LAMP----linux+apache+mysql+php详细安装步骤之一APACHE篇(openldap等)

LAMP----linux+apache+mysql+php详细安装步骤之一APACHE篇(openldap等) linux详细版本为RHEL5.3 [root@localhost mail]# uname -aLinux localhost.localdomain 2.6.18-128.el5 #1 SMP Wed Dec 17 11:42:39 EST 2008 i686 i686 i386 GNU/Linux 1、上传apache源代码文件 httpd-2.2.13.tar.bz2 其实纯粹安装一个apache很简单 [root@localhost apache]# tar xvf httpd-2.2.13 [root@localhost apache]# cd httpd-2.2.13 [root@localhos...

extSourceStat_7Day_Orders.php【代码】

<?php/** Log文件格式2012/7/4列号 字段含义 取值 ------------------------------------------------------------------------- 1 年月日时间 2 时间戳 3 记录类型 1:页面跳转 2:点击(不带来pv,uv,订单) 4 用户id 未登录:0 5 商品id 当前页是加入购物车或者商详,则取当前商品id,,否则:0 6 分站id 7 Guid 用户唯一表示串,进网站时生成 8 Tag 当前url中跟踪tag,没有则为空 9 Pageid 当前页面id 10 Page_level 当前页面lev...

PHP IN_ARRAY 函数使用注意事项

另外,我们在 控制结构比较两个数值是否一直的时候,也应该尽量使用 === 来代替 ==(当然,这个也根据具体的业务逻辑选用比较合适的)。 小弟来解释下 为什么 var_dump(in_array(0, array(‘s‘ )); 这句话的结果是bool(true)。 因为in_array会将0 和‘s‘ 进行比较,0是number类型,‘s‘是string类型,根据php manual 中“Comparison Operators” 一章的说明可知,number 和string进行 比较的时候,会先将string类型首先转化为nu...

最好的PHP博客系统

1.Wordpress http://www.wordpress.org/ B2基础上开发而来,这是国内用户比较喜欢而且用户较多的一个php博客程序,缘由是因为Wordpress提供大量插件和模板,让你可以轻松的打造一个 功能丰富美观的个人博客。不过由于大量的插件,导致了其稳定性和安全性问题,由于一些插件设计的不合理和存在安全隐患,在使用插件时,还请你斟酌。2.Z-Blog http://www.rainbowsoft.org 据朋友介绍,这是国内唯一能够生成标准静态页面的php博客程序,...

php中使用ajax进行前后端json数据交互【代码】【图】

(最近在学习ajax,所以想自己总结一下在PHP中如何使用ajax技术!)一、ajax注意点:  1、原理图:(来自韩顺平ajax视频)2、ajax返回数据类型:      文本,json,xml     (1)文本格式:     (2)xml:1 <?php 2//告诉浏览器返回的是xml类型3header("Content-Type:text/xml;charset=utf-8"); 45678 ?>View Code             前端如何取出:xmlrequest.responseXml();//返回的是对象      (...

PHP 防止表单重复提交【代码】

原理是:首先在表单页生成一个 随机不重复的 token(可以利用时间戳),把 token 的值分别存入 session 和 表单的隐藏域;当提交表单的时候,在接收页对比传递过来的 token 和session 中的 token ,当两者相等时,重新生成一个 token 并存入 session。此时如果重复提交表单,则必然session 中新的 token 值不等于 post 来的 token。代码:表单页 post.php 1session_start(); 2 3$token = md5(microtime(true));4$_SESSION[‘token...