
PHP
mayday526
这个作者很懒,什么都没留下…
展开
-
关于addslashes()和stripslashes()
当我们往数据库插入数据时,如从页面表单获取书名插入数据库的语句:$book_name = $_POST["book_name"];$query = "insert into books values('".$book_name."')";看似没有问题,但是当$book_name的值为《I'm your dady》时,就会出现问题了,这条插入数据库语句对单引号敏感。那就把原in原创 2016-11-29 14:11:49 · 821 阅读 · 0 评论 -
php的延迟静态绑定
延迟静态绑定(late static binding)作用:父类可以使用子类重载的静态方法 例子:<?phpclass A{ public static function who(){ echo __CLASS__; } public static function staticTest(){ static::who(); }原创 2017-04-19 17:43:13 · 1094 阅读 · 0 评论 -
php之static静态关键字
都知道声明为static的方法可以在类没有被实例化的时候调用 但是php有个很有趣的现象,静态调用非静态方法:<?phpclass A { public function test(){ echo "hello"; }}A::test();?>php可以对没有声明static的方法实现静态调用。 然后看到了有人说没有加static的方法采用静态调用时会更慢原创 2017-04-20 11:18:29 · 1991 阅读 · 0 评论 -
Ajax提交表单数据
ajax的基本语法$.ajax({ type: "post", //数据提交方式(post/get) url: "demo.php", //提交到的url data: {"key1":"value1","key2":"value2"},//提交的数据 dataType: "json",//返回的数据类型格式 success: function(msg){原创 2017-05-21 22:03:48 · 4478 阅读 · 0 评论 -
HTTP协议
Http(HyperText Transfer Protocol),叫做超文本传输协议,它属于应用层协议,是基于Tcp连接的。它是一种基于请求/响应模式的,无状态的协议。 http1.0的特点:一次连接一次响应后就断开; http1.1的特点:持续连接,在一次连接中可发送多个请求,不必等待每次请求的响应是否到来。一般用浏览器来发送http协议,但是也可用别的工具来发送http协议。如teln原创 2017-07-13 00:54:36 · 757 阅读 · 0 评论 -
Apache No installed service named "Apache2.4"的解决办法
windows安装Apache后,用cmd开启apache服务时,提示No installed service named "Apache2.4" 解决步骤: 1.cmd窗口,进入Apache2的bin目录(比如我的bin路径为E:\Apache24\bin)。 2. 运行httpd.exe -k install -n "Apache2.4" 安装Apache到Windows服务中。 (记得原创 2017-07-13 22:11:08 · 13183 阅读 · 0 评论 -
Referer与防盗链
Referer:HTTP请求头信息中的Referer可以判断访问的本站资源是来自哪里的。因此,我们可以利用Referer来避免别人盗取自己本站的资源,如图片。如Apache可以编写.htaccess文件来重写访问的资源连接RewriteEngine On#Rewrite Base /dir #只在dir目录下生效RewriteCond %{REQUEST_FILENAME} .*\.(jpg|j原创 2017-07-14 11:36:25 · 523 阅读 · 0 评论 -
使用scoket发送HTTP请求
建议先看一下如何用telnet发送HTTP请求: http://blog.youkuaiyun.com/whd526/article/details/75042691<?phpclass Http{ const CRLF = "\r\n"; protected $errno = -1; protected $errstr = ''; protected $url = null;原创 2017-07-13 15:45:39 · 522 阅读 · 0 评论 -
php表单提交时获取不到post数据的解决方法
博主运行php环境:windows+phpstorm+xampp初学php,用echo $_POST["variable"]和var_dump($_POST) 都获取不到post数据。解决方法如下:1.找到php.ini 配置文件,查找enable_post_data_reading变量,确保其打开状态:2.观察你的运行php的浏览器地址,会发现在PhpStorm中打开原创 2016-11-21 20:43:18 · 41782 阅读 · 8 评论 -
strtolower()和strtoupper()中文乱码问题
这个问题来自腾讯的一道笔试题: PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode文字的字符串大小写转换。原因是:中文是由多字节组成的,而只有英文系统的单个英文字符只有一个字节,所以该系统把中文的每一个字节都做了strtolower()处理,改变后的中文字节拼接在一起就成了乱码(新生成的编码映原创 2017-09-06 21:04:01 · 4026 阅读 · 0 评论 -
浅谈多态以及php的实现方法
先简单说一下多态 多态的三大特征:子类继承父类子类重写父类父类指向子类多态实现的前提:必须是类与类之间要有关系,要么继承,要么实现,存在重写(override),其实就是抽象函数或接口。 多态的应用:父类对象的引用指向子类对象,其实本质上就是一个向上转型。 举个模型例子,一家公司有员工类(Employee),还有其子类:销售(Sales)、市场(Market)、工程师(Engineer原创 2017-04-19 17:13:26 · 13629 阅读 · 3 评论 -
重载不应归在多态的范畴内
什么是多态? 简而言之,是指多个属于不同类的对象 对同一方法调用做出不同响应的方式。 (感觉还是有点绕口) 举个例子,所有的动物都能发出声音(把发出声音这一行为抽象为一个方法:sound();),但是不同种类的动物发出的声音却是不一样的(调用sound()方法能够得到不同的响应)。 一谈到多态,很多人就联想到重载(overload),但我并不觉得重载在多态的范畴之内。重载,是指允许存在多个同原创 2017-04-19 14:46:17 · 666 阅读 · 0 评论 -
PHP连接到MYSQL数据库的相关操作
<?php$mysqli = new mysqli('localhost','username','password','database');//若不先指定数据库,可以用$mysqli->select_db(database)来指定//尝试连接的结果需要进行检查if($mysqli->connect_errno){ die('Connect Error: '.$mysqli->原创 2016-11-29 16:44:53 · 451 阅读 · 0 评论 -
php学习笔记 --- 关于字符串函数
mixed strpos ( string $haystack , mixed $needle)查找字符串首次出现的index位置 找不到index则返回false因此判断要用=== <?php$string = 'abc';$search = 'a';$pos = strpos($string,$search);if($pos === false){echo "No原创 2017-01-29 15:39:22 · 709 阅读 · 0 评论 -
php学习笔记--关于时间戳
获取时间戳int time ( void ) 返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。 mixed microtime ([ bool $get_as_float ] ) microtime() 当前 Unix 时间戳以及微秒数。 如果调用时不带可选参数,本函数以 "msec sec" 的格式返回原创 2017-01-28 18:14:51 · 261 阅读 · 0 评论 -
php学习笔记 -- 关于连接符与单双引号
php连接符中逗号与点号的区别点号是将字符串拼接后再输出逗号是将字符串依次输出逗号省去了拼接步骤,所以使用逗号性能更好echo '1+5=' . 1+5; //输出6echo "1+5=" . 5+1; //输出2不同结果的原因:先'1+5='与1拼接得到'1+5=1',再把'1+5=1'这个字符串自动转化成int类型得到1,然后再与后面的int数字相加。原创 2017-01-28 21:56:21 · 2064 阅读 · 1 评论 -
对POST数据实现自动验证
要实现自动验证,只需在Model类里事先定义好验证的方法,然后在其他类定义好要验证数据的格式,在继承Model就可以使用了对POST数据要验证的格式 $this->valid = array( array('验证的字段名',0/1/2(验证场景),'报错提示','require/in(某几种情况)/length(范围)/between(某个范围)'););具体例子原创 2017-03-17 19:03:53 · 1807 阅读 · 0 评论 -
无限极分类
首先来说说什么是无限极分类。按照我的理解,就是对数据完成多次分类,如同一棵树一样,从根开始,到主干、枝干、叶子……完成无限极分类,主要运用了两种方法,一是递归方式,二是迭代方式。而主要运用无限极分类的地方有地址解析,面包屑导航等等。下面就来具体介绍两种方法的原理及实现方法。家谱树与子孙树家谱树和子孙树是无极限分类的表现形式之一。家谱,现在很多地方都流行起修家原创 2017-03-05 12:11:29 · 2041 阅读 · 0 评论 -
对POST数据实现自动过滤和自动完成
有一个如下的表单:该表单源码 商品名: 价格: 元 精品 新品 热销 现在要把数据插入到如下的数据库:注意:这个表并不需要价格之类的信息但是,当submit数据时,$_POST接收的数据里并没有收到没打勾的checkbox信息,也没有商品的add_time时间戳信息这时就需要我们手动对post数据进行处理:$data原创 2017-03-16 21:04:40 · 3188 阅读 · 0 评论 -
ubuntu16.04搭建LAMP环境以及遇到的问题
搭建顺序为Apache,Mysql,PHP以及phpmyadmin1.安装Apache 在命令行输入 sudo apt-get install apache2 输入管理员密码 并选择Y安装完毕后,在浏览器中输入:127.0.0.1显示如下图,说明安装正确。产生的启动和停止文件是:/etc/init.d/apache2 启动:sudo apache2ctl -k原创 2017-04-03 19:27:44 · 3570 阅读 · 0 评论 -
php实现重载
php是弱类型语言,并没有像JAVA这种强类型语言一样有重载。 重载一般来说就是拥有相同的函数名或方法名,但是参数列表却不同(包括参数个数和参数类型) 从这个定义来说,php是没有重载的,因为php不允许存在相同的函数名。 但是没有并不意味着不能实现。 php有四种机制可以实现重载:(下面用java进行对比)1.弱类型,无需定义变量类型 先举一个JAVA重载的例子:class demo原创 2017-04-19 14:16:48 · 4428 阅读 · 1 评论 -
不用XMLHttpRequest来模仿AJAX
AJAX的原理就是通过XMLHttpRequest对象来对服务端发起请求。所以XMLHttpRequest对象是AJAX的核心。 现在我想不通过XMLHttpRequest对象来对服务端发起请求,但不刷新页面。 例:创建一个投票按钮,点击后将请求服务器数据库对数据加一。 前端投票按钮test.html:<!DOCTYPE html><html lang="en"><head> <m原创 2017-10-04 16:02:05 · 1006 阅读 · 0 评论