
PHP
ambition_forever
闲谈莫论人非
展开
-
杂项包含时间日期的设置,url内容获取
<?php/** * Created by PhpStorm. * User: Administrator * Date: 2018/2/26 * Time: 22:08 *///利用setDate()设置日期//利用setTime()设置时间$d = new DateTime();$d ->setDate(2016,2,3);$d->setTime(10...原创 2018-02-26 23:27:36 · 358 阅读 · 0 评论 -
文件上传类
<?php/** * Created by PhpStorm. * User: Administrator * Date: 2018/2/26 * Time: 16:29 */abstract class aUpLoad{ public $allowExt = array('jpg', 'jpeg', 'png', 'rar'); public $maxSi...原创 2018-02-26 18:14:12 · 185 阅读 · 0 评论 -
php魔术方法以及其意义
<?php echo '<center>魔术方法</center>'; echo '<hr/>'; class Test { //调用不可见属性的时候 public function __get($a) { echo $a; } public function __set($a, $b) { //两个参数 echo $a.'---'.$b...原创 2018-02-24 21:59:51 · 741 阅读 · 0 评论 -
PHP 封装Msyql类 注意 编码问题
<?php class MySql{ public $link = null; public function conn(){ $cfg = array( 'host'=>'localhost', 'user'=>'root', 'password'=>'', 'db'=>'test', 'charset'=>'utf8',...原创 2018-02-24 18:59:02 · 173 阅读 · 0 评论 -
1203 时间日期函数
$str = 'abc';echo strlen($str);//utf8,一个中文字符占3个字节//gbk,一个中文字符占2个字节 //存在BOM头的UTF-8在Windows平台创建文件时/*$str = '中国';echo mb_strlen($str);*/echo time();echo '';echo date('Y-m-d H:i:s原创 2017-12-03 22:26:29 · 167 阅读 · 0 评论 -
返回局部最小元素
/*定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0]$arr=array(3,1,5,6,8,99);function findMin($arr){if(count($arr)==1 || $arr[0]return 0;}if($arr[count($arr)-1]return count($arr)原创 2017-09-26 17:14:19 · 338 阅读 · 0 评论 -
有序数组arr,其中不含有重复元素 找到 arr[i]==i
/*有一个有序数组arr,其中不含有重复元素,请找到满足arr[i]==i条件的最左的位置。如果所有位置上的数都不满足条件,返回-1。给定有序数组arr及它的大小n,请返回所求值。测试样例:[-1,0,2,3],4返回:2*/function findLeft($arr){if(is_null($arr)|| count($arr)==0){retu原创 2017-09-26 16:44:14 · 817 阅读 · 0 评论 -
返回数组最左边位置
/*对于一个有序数组arr,再给定一个整数num,请在arr中找到num这个数出现的最左边的位置。给定一个数组arr及它的大小n,同时给定num。请返回所求位置。若该元素在数组中未出现,请返回-1。测试样例:[1,2,3,3,4],5,3返回:2*/$arr=array(1,2,2,3,4,5,3);function findNear($arr,$key){if(is_原创 2017-09-26 15:34:06 · 410 阅读 · 0 评论 -
2017年09月25
1:二维数组查询/*echo "alter table table_name add name varchar(20)";echo "alter table table_name add unique name";//为name列添加唯一索引echo "alter table table_name add index(a,b,c)"//*/function findNumber原创 2017-09-25 10:46:10 · 178 阅读 · 0 评论 -
返回数组中两个元素的最新距离
function getMin($a,$b){return ($a}function getDistance($arr,$a,$b){if(!is_array($arr)){return;}$index1=-1;$index2=-1;$minDistance=-1000;for($i=0;$iif($arr[$i]==$a){$i原创 2017-09-19 18:13:45 · 324 阅读 · 0 评论 -
生成随机数组-php
//1.生成随机数是用mt_rand()比rand()快//2.去掉重复元素要更加简单用到 array_flip(array_flip())更快//3.将数组的键重新进行赋值,使用shuffle()//4.php7 开始完全要用mt_rand()替代rand()function unique_rand($min, $max, $num) { $count = 0;原创 2017-09-19 17:20:49 · 1429 阅读 · 0 评论 -
数组中两个元素最小的距离
$arr=array(1,2,4,3);//在数组中求两个数字的最小距离function getMin($a,$b){$min=($a>$b)?$b:$a;return $min;}function getMinDistance($arr,$n,$m){$index1=-1;$index2=-1;$distance=-1000;原创 2017-09-17 21:40:13 · 1008 阅读 · 0 评论 -
输出连续相同的子数组
function display($arr,$s,$e){for($i=$s;$iecho $arr[$i].' ';}echo '';}$arr=array(3,3,4,1);$index=array();for($i=1;$iif($arr[$i-1]!=$arr[$i]){$index[]=$i;}}display($arr原创 2017-09-17 21:00:11 · 311 阅读 · 0 评论 -
多级遍历
header('content-type:text/html;charset=utf-8');$conn=mysql_connect('localhost','root','')or die('数据库连接失败!');mysql_select_db('test',$conn);mysql_query('set names utf8');$sql="select * from base原创 2017-09-16 11:03:13 · 426 阅读 · 0 评论 -
PHP+ajax实现省市县三级联动
//首页header('content-type:text/html;charset=utf-8');$conn=mysql_connect('localhost','root','')or die('数据库连接失败!');mysql_select_db('test',$conn);mysql_query('set names utf8');$sql='select * f原创 2017-09-16 10:05:19 · 1514 阅读 · 0 评论 -
//数组中只重复一次的数字
$arr=array(1,2,1,3,4,5);$res=0;for($i=0;$i$res^=$arr[$i];}for($j=1;$j$res^=$j;}if('inf'!='0'){echo $res;}else{echo 'No';}phpinfo();原创 2017-09-14 10:23:01 · 253 阅读 · 0 评论 -
输出唯一的一个不同的数字
function switchNumber($arr){if(is_null($arr)){return null;}if(count($arr)==1){return $arr[0];}$res=$arr[0];for($i=1;$i$res^=$arr[$i];}echo $res;}switchNumber(原创 2017-09-14 10:22:42 · 419 阅读 · 0 评论 -
PHP 练习题
//计算一个数字是否是2的几次方function info($n){$i=1;while($iif($i==$n){return 1;}$i=$i}}echo info(8); //计算一个数字是否是2的几次方function info($n){$m=$n&($n-1);return $m==0;}echo inf原创 2017-09-12 19:08:27 · 2822 阅读 · 0 评论 -
计算连续相同子数组
求连续 相同子数组问题 $arr=array(3,3,0,0,2,1); for($i=1;$i if($arr[$i-1]!=$arr[$i]){ $location[]=$i; } } show($arr,0,$location[0]); echo ''; for($i=1;$i s原创 2017-09-12 09:59:44 · 429 阅读 · 0 评论 -
面试问题
1、web 操作中,当你输入一个 url 到看到页面,描述一下这中间发生了什么?我想对于很多非 CS 专业的人来说,排名最高的答案可能过于专业,很难看完并且看明白。而且大家可能只是想了解一下,所以我就写了这么一篇答案,中间跳过了很多细节,并且也没有说如果发生了错误什么的要怎样之类的。我们假设 Chrome 浏览器是专门负责根据 URL 寻找并打开网页的人。-----------原创 2017-09-12 09:38:32 · 437 阅读 · 0 评论 -
php 合并两个有序数组
$a=array(1,2,2,3,4); $b=array(1,2,4,5);if(checkList($a) && checkList($b)){$merge=array();$i=0;$j=0;$k=0;while($iif($a[$i]$merge[$k++]=$a[$i++];}else{$merge[$k++]=$b[$j++原创 2017-09-01 09:50:32 · 286 阅读 · 0 评论 -
PHP -单例模式 -简单工厂-抽象工厂
//饿汉模式//懒汉模式class Single{private static $ins=null;//private static Single s=new Single();//为懒汉模式private function __construct(){$this->ins=mt_rand(10,20);}public static function get原创 2017-08-30 21:18:42 · 268 阅读 · 0 评论 -
PHP-约瑟夫环
function ysf($n,$m){$arr=range(1, $n);$i=0;while($m++$i;$survice=array_shift($arr);if($i%$marray_push($arr, $survice);}else{$i=0;}}return $arr;}$res=ysf(7,3);原创 2017-08-30 21:16:10 · 170 阅读 · 0 评论 -
PHP -快速排序 -选择排序 -冒泡排序
function qrSort($arr){if(!is_array($arr)) return false;//递归出口:数组长度为1,直接返回数组 $length=count($arr); if($length$left=$right=array();for($i=1;$i//判断当前元素的大小原创 2017-08-30 21:15:17 · 179 阅读 · 0 评论 -
PHP GD库
echo '---------------------- 生成缩略图-----------------------------------------';$pic = './images.jpg';list($bw,$bh) = getimagesize($pic);$big = imagecreatefromjpeg($pic);// 原图$small = imagecr原创 2017-08-28 11:15:29 · 181 阅读 · 0 评论 -
MySql优化-04
1:limit 分页及优化 select * from table limit 10000,5 查询原理是 先查到10005 条记录,然后不要前10000条 取最后5的条,这样会使得查询效率非常的慢 limit offset,5 随着offset的增大limit 的效率越来越低 查询所花费的时间越来越长 set profiling=1 show p原创 2017-08-24 10:43:22 · 242 阅读 · 0 评论 -
关于git 关于
1:在工作区是用git checkout – 文件名 撤销对文件的修改2:如果add以后,那么文件的位置就由工作区移动到暂存区,同样可以将暂存区的修改撤销掉,重新回到工作区, git reset HEAD 文件名 退回指针的起始地址 git reset commitID 退回到指定版本 git reset 可以回退版本,同样可以把暂存原创 2017-08-22 16:33:52 · 202 阅读 · 0 评论 -
Linux 下 PHP 操作Redis
$redis=new Redis(); $conn=$redis->connect('127.0.0.1',6379); if($conn){ echo '链接成功|'; }else{ echo '链接失败|'; } echo 'Redis原创 2017-06-09 16:11:29 · 322 阅读 · 0 评论 -
SQL语句 limit 语句
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了上面这样一个功能。 LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。转载 2017-06-05 09:31:42 · 402 阅读 · 0 评论 -
PHP 实现二分查找
//二分查找function getNumbers($num){$arr=array(1,2,3,4,5,6,7,8,9,10);$low=0;$high=count($arr)-1;while ( $low $mid = intval($low + $high+1 / 2);if ($arr [$mid] > $num)$high = $mid - 1;els原创 2017-06-01 18:16:08 · 194 阅读 · 0 评论 -
PHP Trait 续2
//多个Trait中的内容包括相同的方法的时候需要//进行处理 利用insteadof 和as 来处理trait Trait1 { public function hello() { echo "Trait1::hello"; } public function hi() { echo "Trait1::hi"; }}原创 2017-05-19 14:28:02 · 181 阅读 · 0 评论 -
PHP Trait续
//如果Trait 父类 和 子类中都同时包含一个方法,最后保留的是Trait中的方法 class Person { public function hello() { echo "hello person"; } public function driving() { echo原创 2017-05-19 14:04:49 · 168 阅读 · 0 评论 -
PHP基础知识03
?php// 声明一个'iTemplate'接口interface iTemplate{ public function setVariable($name, $var); public function getHtml();}class Template implements iTemplate{private $vars=array(1,2,3,4);原创 2017-05-19 13:47:41 · 183 阅读 · 0 评论 -
PHP中Trait
PHP中的Trait和GO语言中的组合类似,实习类似于C++中的多继承问题。通过使用当需要的时候可以用use关键字实现将除了父类之外的类加到自己的类中。在创建对象以后可以调用Trait中的属性和方法。看起来和多继承是一样的。trait Drive{public $carName="trait";public function driving(){echo "diving原创 2017-05-19 13:46:46 · 195 阅读 · 0 评论 -
设置定界符号,mysql中的存储过程+游标
delimiter // create procedure p6() begin declare row_id int; declare row_username varchar(30); declare row_details varchar(30); declare you int default 1; declare getusers cursor for sel原创 2017-05-07 10:51:55 · 743 阅读 · 0 评论 -
MySQL性能优化
//1.表单输入注册邮箱//2.如果邮箱不存在网站的用户表中,则提示用户邮箱未注册。//3.如果存在,就需要发送邮件了,就组合用于验证用户身份的字符串。同时构造url发送给用户邮箱//4.用户登录邮箱取邮件,点击邮件到网站验证程序//5.网站程序通过用户请求的字符串,进行验证。//6.验证成功,那么就跳转到修改密码页面。echo md5("admin");echo ''原创 2017-05-06 16:55:39 · 224 阅读 · 0 评论 -
找回密码的思路
第一种办法:1.用户填写用户名和注册邮箱,回答找回密码问题(我一直觉得找回密码问题没什么实际作用,加重了用户操作负担)2.server将用户本来的密码发送到用户邮箱中3.一般注册密码都是经过MD5加密存储在数据库中,这个加密算法几乎不可逆,那么如果需要发送给用户其原始密码,就需要有个字段记录用户的裸露密码,也就是未经加密的密码这种办法,比较好实现,只需要将数据库对应字段的密码发翻译 2017-05-06 08:55:54 · 4846 阅读 · 0 评论 -
MYSQLI连接数据库
$servername = "localhost";$username = "root";$password = "";$dbname = "test02";$conn=new mysqli($servername,$username,$password,$dbname);if($conn->connect_error){die('数据库连接失败!'.$co原创 2017-05-05 11:25:41 · 609 阅读 · 0 评论 -
PHP关于数组
echo "PHP操作数组。。";$arr=array('a','b');$values=array_values($arr);var_dump($values);echo '';print_r($arr);echo '';$arr=array_flip($arr);//将数组的键和值互换var_dump($arr);$key1=array_se原创 2017-05-05 11:07:24 · 231 阅读 · 0 评论 -
PHP防止SQL注入
$mysql=new MySQLi("localhost","root","","test02");$username="zbx";$password="admin";if($mysql){echo "数据库连接成功!";}else{echo "数据库连接失败";}$stmt=$mysql->prepare("select * fro原创 2017-05-05 09:36:07 · 172 阅读 · 0 评论