关于php的一些基础知识

Posted 雾若晨曦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于php的一些基础知识相关的知识,希望对你有一定的参考价值。

1.HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302.

答案:

503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

500 (服务器内部错误) 服务器遇到错误,无法完成请求。

401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

403 (禁止) 服务器拒绝请求。

404 (未找到) 服务器找不到请求的网页。

200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。

301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

技术分享

2.include require include_once require_once的区别。

引用文件的方法有两种:require 及 include。

require 的使用方法如 require("file.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

include 使用方法如 include("file.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

_once 后缀表示已加载的不加载

3.请写出数据类型(int char varchar datetime text)的意思,请问varchar和char有什么区别。

int:整数类型,4 字节大小,范围(-2 147 483 648,2 147 483 647)

char:字符串类型,大小0-255字节

varchar:字符串类型,大小0-65535 字节

datetime:表示时间值的日期和时间类型,大小8个字节,格式:YYYY-MM-DD HH:MM:SS

text:字符串类型,0-65535字节,用于长文本数据存储

char与varchar的区别:

char (13)长度固定, 如‘www.nynds.com‘ 存储需要空间 13个字符

varchar(13) 可变长 如‘www.nynds.com‘ 需要存储空间 14字符

从上面可以看得出来char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。

而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置。所以实际应用中用户可以根据自己的数据类型来做。

由于某种原因char 固定长度,所以在处理速度上要比varchar快速很多.

技术分享

4.mysql的存储引擎myisam和innodb的区别。

InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。

5.用PHP打印出前一天的时间格式是2006-5-10 22:21:21

echo date("Y-m-d H:i:s",time()-3600*24);

6.echo(),print(),print_r()的区别

echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)

print只能打印出简单类型变量的值(如int,string)

print_r可以打印出复杂类型变量的值(如数组,对象)

7.如何实现字符串翻转

(1)英文字符串反转

$str = ‘abc,def.‘; // 时刻记住推荐使用单引号‘‘,效率高

$newstr = strrev($str);

echo ‘原字符串是:‘.$str; // ‘abc,def.‘

echo ‘ 翻转后的字符串是:‘.$newstr; // ‘.fed,cba‘

echo ‘<br />‘;

// 但是当有中文存在的时候,则出现了乱码

$str = ‘a这b是c子,符d串ef.‘;

$newstr = strrev($str);

echo ‘原字符串是:‘.$str; // ‘a这b是c子,符d串ef.‘

echo ‘ 翻转后的字符串是:‘.$newstr; // 输出一串乱码

echo ‘<br />‘;

(2).中英文字符串反转

echo "<meta charset = ‘utf-8‘>";

function myStrrev($str,$encoding=‘utf-8‘){

$newstr = ‘‘;

$len = mb_strlen($str);

for($i=$len-1; $i>=0; $i--){

$newstr .= mb_substr($str,$i,1,$encoding);

}

return $newstr;

}

$string = ‘相信women是正确的。‘;

echo $string;

echo ‘<br />‘;

echo myStrrev($string); // ‘的。的确正是nemow信相‘

技术分享

8.实现中文字符串截取无乱码的方法

//$start:指定开始截取字符串的位置;$length指定截取字符的长度

function substr2($string, $start, $length)

{

$len = strlen($string);

if($len > $length)

{

$str = ‘‘;

$len1 = $start + $length; //截取到原字符串的位置

for($i=$start; $i<$len1; $i++)

{

if(ord(substr($string, $i, 2)) > 0xa0) //在ASCII中,0xa0表示汉字的开始

{

$str.=substr($string, $i, 2);

$i++;

}

else

{

$str.=substr($string, $i, 1);

}

}

return $str.‘...‘;

}

else

{

return $string;

}

}

9.如何用PHP的环境变量得到一个网页地址的内容?IP地址又要怎样得到?

"http://".$_SERVER [‘HTTP_HOST‘].$_SERVER[‘PHP_SELF‘] ;// 获取网页地址

$_SERVER[‘REMOTE_ADDR‘] //获取IP地址

10.求两个日期的差数,例如2017-2-5~2017-3-6的日期差数

$day=(strtotime(‘2017-2-5‘)-strtotime(‘2017-3-6‘))/8600;

以上是关于关于php的一些基础知识的主要内容,如果未能解决你的问题,请参考以下文章

关于php的一些小知识!

关于php的一些小知识!

谈谈关于PHP的代码安全相关的一些致命知识

PHP基础教程 php 网络上关于设计模式一些总结

谈谈关于PHP的代码安全相关的一些致命知识

关于PHP的基础问题