PHP语法入门以及变量

1PHP语法入门1.1PHP是编译型语言   编译语言和解释语言的区别在于是否保存最终的可执行程序。1.2PHP定界符   因为PHP是脚本语言,所以需要定界符<?phpecho'iamaboy!';?>1.3注释       单行注释://和#    多行注释:/**/1.4PHP输出语句echo:输出print:输出,输出成功返回1print_r():输出数组var_dump():输出数据的详细信息,带有数据类型和数据长度<?phpvar_dump('abc');//string(3)"abc"?>2.变量变量的本质就是内存中的一段空间  2.1变量的命名规则变量必须以开头,​符不是变量的一部分,仅表示后面的标识符是变量名。除了$以外,以字母、下划线开头,后面跟着数字、字母、下划线    3.变量名区分大小写,和Aa是两个空间$a合...

PHP写出计算器

<body><?phpif(!empty($_POST)){$op=$_POST['point'];$sum1=$_POST['sum1'];$sum2=$_POST['sum2'];$sum=0;if($sum1!=''&&is_numeric($sum1)&&$sum2!=''&&is_numeric($sum2)){switch($op){case'+':$sum=$sum1+$sum2;break;case'-':$sum=$sum1-$sum2;break;case'*':$sum=$sum1*$sum2;break;case'/':$sum=$sum1/$sum2;break;}echo<<<shi<script>window.onload=function(){document.getElementsByName('sum3')[0].setAttribute('value','$sum')document.getElementsByName('sum1')[0].setAtt...
代码星球 代码星球·2021-02-15

PHP常量以及基本数据类型

1.常量   1.1用define()函数定义常量define(常量名,值,[是否区别大小写])true表示不区分大小写,默认是false常量名前没有$符常量名推荐使用大写   1.2、定义常量可以用特殊字符,但是在调用的时候必须用constant关键字调用define('%-%','tom');echoconstant('%-%');//通过constant获取特殊字符作为常量名的常量    1.3、判断常量是否定义,通过defined()判断常量是否已经定义if(!defined('NAME')){define('NAME','berry');}echoNAME;//berry     1.4还可以使用const关键字定义常量constNAME='tom';echoNAME;//tom小结:1、定义常量有两种方式,define()和const2、常量在整个运行过程中值保持不变,常量不能重新定义3、使用constant获取特殊字符做的常...

PHP入门了解

1.五个基本概念  1.1静态页面和动态页面静态页面:服务器不执行的页面动态页面:服务器执行的页面    1.2客户端和服务器端客户端:浏览器就是客户端服务器端:给浏览者提供服务    1.3端口和端口号  端口号的范围:0-65535   1.4BS架构和CS架构    BS:通过浏览器去访问服务器b:browser(浏览器)s:sever(服务器)优点:1、只要有浏览器就可以访问2、开发低缺点:2、开发的代码都放在服务器上胖服务器-瘦客户端     注意:所有的web都是BS架构的     CS:通过客户端软件去访问服务器c:client(客户端)s:server(服务器)优点:1、可以开发客户端和服务器端,这时候就可以实现负载的均衡缺点:1、必须要安装一个软件才能去访问2、开发成本高 ...
代码星球 代码星球·2021-02-15

php中搭建Web服务器和服务器配置

1.搭建Web服务器  1.1目录结构    1.2访问服务器访问规则:http://服务器ip地址/php页面比如:http://localhost/demo.phphttp://127.0.0.1/demo.php   1.3Apache常用命令httpd-v查看apache版本号versionhttpd-t检测运行环境test   1.4互联网通讯原理   访问过程:    步骤:   1、客户端输入域名(网址),在最近的机房做DNS解析(DomainNameServer),DNS解析就是将域名转化成IP地址   2、通过IP地址访问服务器   1.5DNS解析   目标:ip地址访问服务器不方便,通过域名来访问。   hosts文件用来做DNS...

PHP常用工具函数之手机号相关

1、手机号正确与否判定//测试手机号$phone='17777777777';$pattern='/^1[356789]d{9}$/';$is=preg_match($pattern,$phone);//输出0或1echo$is;//12、手机号中间4位替换为****//测试手机号$phone='17777777777';//方法1、直接替换echosubstr_replace($phone,'****',3,4);//方法2、截取+*echosubstr($phone,0,3).'****'.substr($phone,7);//方法3、正则替换$pattern='/(d{3})d{4}(d{4})/';echopreg_replace($pattern,'$1****$2',$phone);//结果:177****77777 ...

PHP的重载-使用魔术方法实现

摘录PHP官网对PHP重载的解释:PHP所提供的"重载"(overloading)是指动态地"创建"类属性和方法。我们是通过魔术方法(magicmethods)来实现的。当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。本节后面将使用"不可访问属性(inaccessibleproperties)"和"不可访问方法(inaccessiblemethods)"来称呼这些未定义或不可见的类属性或方法。所有的重载方法都必须被声明为public。Note:这些魔术方法的参数都不能通过引用传递。Note:PHP中的"重载"与其它绝大多数面向对象语言不同。传统的"重载"是用于提供多个同名的类方法,但各方法的参数类型和个数不同。属性重载public__set(string$name,mixed$value):voidpublic__get(string$name):mixedpublic__isset(string$name):boolpublic__unset(string$name):void在给不可访问属性赋值时,__set()会被调用。读取不可访问属性的值时,__get()会被...

PHP实现一些常见的排序算法

1、冒泡排序:两两相比,每循环一轮就不用再比较最后一个元素了,因为最后一个元素已经是最大或者最小。functionmaopaoSort($list){$len=count($list);for($i=0;$i<$len-1;$i++){for($j=0;$j<$len-$i-1;$j++){if($list[$j]>$list[$j+1]){$tmp=$list[$j];$list[$j]=$list[$j+1];$list[$j+1]=$tmp;}}}return$list;}2、选择排序:选定一个作为基本值,剩下的和这个比较,然后调换位置。functionxuanzeSort($list){$len=count($list);for($i=0;$i<$len-1;$i++){$pos=$i;for($j=$i+1;$j<$len;$j++){if($list[$pos]>$list[$j]){$pos=$j;}}if($pos!=$i){$tmp=$list[$pos];$list[$pos]=$list[$i];$list[$i]=$tmp;}...

PHP不使用内置函数intval(),实现字符串转整数

平时我们用PHP时,将字符串转化为整型时,一般都是使用intval()内置函数,那么如果我们自己写,怎么写一个呢?此时我们可以利用ASCII码计算得整数的特性,因为每个字符都对应一个 ASCII码,当对这个字符做加减乘除的时候,实际上就是对ASCII码做加减乘除操作,也就是整型操作,最终会返回一个整型数字。也就是说:'1'-'0'=1;'2'-'0'=2;数字0~9对应的十进制ASCII码为:数字ASCII值048149250351452553654755856957类似intval()函数的实现方法为://自定义字符串转intfunctionmyIntval($str=''){$len=strlen($str);$int=0;$negative=false;//是否是负数for($i=0;$i<$len;$i++){//第一位字符判断正负if($i==0){if($str[$i]=='-'){$negative=true;continue;}}//判断字符是不是数字的ASCII码范围if($str[$i]<'0'||$str[$i]>'9'){break;...

phpredis报错信息:protocol error, got 'o' as reply type byte解决方案

今天在前端调用PHP的接口时,有报错信息为:protocolerror,got'o'asreplytypebyte另外此错误有几率会重现,并不是必现的。十分疑惑,遂百度一下,发现是redis的错误。网上说是redis的连接问题,解决方案为:在redis.conf中1、将bind参数注释2、protected-mode由yes改为no改完后重启redis服务。暂时未发现问题会复现。另附参考链接:1、github的phpredis项目issue中该问题的提问:https://github.com/phpredis/phpredis/issues/52此问题中怀疑是phpredis使用的是长连接,某种情况下共用一个socket导致出问题,还有就是不知道是不是fork()的原因,并建议fork时重连redis2、另一篇遇到此问题的讨论帖:这个是用Discuss出现的。https://www.52pojie.cn/forum.php?mod=viewthread&tid=446251&archive=1&extra=page%3D1&page=5其中有个跟帖回复为...

PHP连接FTP服务的简单实现

PHP连接FTP服务:<?phpclassFtp{private$connect;private$getback;/***ftp连接信息*@vararray*/private$ftpConnInfo=['host'=>'127.0.0.1','port'=>'21','timeout'=>'90',];//连接FTPfunctionconnect($user,$passwd){$this->connect=@ftp_connect(...$this->ftpConnInfo);$login=@ftp_login($this->connect,"{$user}","{$passwd}");if((!$this->connect)(!$login)){echo"connectfailed:{$this->ftpConnInfo['host']}foruser{$user}";die;}else{echo"Connectedsuccess";}}/***获取文件最后的修改时间*@param$remoteFile*@returnintthe...

PHP curl get post请求

POST请求:publicfunctionpostUrl($url,$postData=false,$header=false){$ch=curl_init($url);curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//返回数据不直接输出curl_setopt($ch,CURLOPT_ENCODING,"gzip");//指定gzip压缩//addheaderif(!empty($header)){curl_setopt($ch,CURLOPT_HTTPHEADER,$header);}//addsslsupportif(substr($url,0,5)=='https'){curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);//SSL报错时使用curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);//SSL报错时使用}//add302supportcurl_setopt($ch,CURLOPT_FOLL...
代码星球 代码星球·2021-02-15

PHP的Session机制解析 2

在鸟哥的博客看到对phpsession的过期时间的一篇文章,在此记录。原文地址:http://www.laruence.com/2012/01/10/2469.html以下是鸟哥博客原文:今天在我的微博(Laruence)上发出一个问题:/我在面试的时候,经常会问一个问题:“如何设置一个30分钟过期的Session?”,大家不要觉得看似简单,这里面包含的知识挺多,特别适合考察基本功是否扎实,谁来回答试试?呵呵为什么问这个问题呢?1.我在Twitter上看到了有人讨论这个问题,2想起来我经常问这个问题,所以~~在这里,我来解答下这个题目.第一种回答那么,最常见的一种回答是:设置Session的过期时间,也就是session.gc_maxlifetime,这种回答是不正确的,原因如下:1.首先,这个PHP是用一定的概率来运行session的gc的,也就是session.gc_probability和session.gc_divisor(介绍参看深入理解PHP原理之SessionGc的一个小概率Notice),这个默认的值分别是1和100,也就是有1%的机会,PHP会在一个Session启动...
代码星球 代码星球·2021-02-15

PHPSession机制解析 1

一、php的默认session机制php默认用磁盘文件来实现session在php.ini中session.save_handler=files定义session机制session.save_path="D:devxamppmp"定义session的存储位置1.1、启动sessionsession_start()。sesson_start()函数是启动session的开始,session默认存放在文件中,且具有一定概率触发session的垃圾回收机制。php自身的垃圾回收对session是无效的,因为默认session是存放在文件中的。session的垃圾回收概率是根据session.gc_probability=1session.gc_divisor=1000session.gc_maxlifetime=1440//过期时间默认24分钟这三个参数去计算的。计算规则为:触发概率=session.gc_probability/session.gc_divisor;结果1/1000,1.2、配置session.save_pathsession.save_path在php.ini中提供了不同...
代码星球 代码星球·2021-02-15

CentOS 7 & php7.2安装 php-redis 扩展

CentOS7&php7.2安装php-redis扩展1、下载phpredis-developcd/tmpwgethttps://codeload.github.com/phpredis/phpredis/zip/develop1.1、如果系统未安装zip包,则安装unzip、zip解压工具yum-yinstallunzipzip2、解压phpredis-develop包unzipphpredis-develop.zip2.1、解压后会多了个phpredis-develop的目录。进入目录cdphpredis-develop3、安装phpredis扩展3.1、查找php-config路径find/-namephp-config例如:我的是:/usr/local/php/bin/php-config3.2、开始安装扩展【此时我们在phpredis-develop目录中】执行phpize生成configure/usr/local/php/bin/phpize3.2.1、执行./configure并指定php-config文件path./configure--with-php-con...
首页上一页...1415161718...下一页尾页