百度
360搜索
搜狗搜索

php基础知识大全,PHP工程师面试常见问题有哪些详细介绍

本文目录一览: php基础知识点

php基础知识点
  PHP是一种非常流行的开源服务器端脚本语言,下面我整理了php基础知识点,希望对大家有帮助!

   定义和用法
  strrev() 函数反转字符串。
   语法
  strrev(string)
   参数 描述
  string 必需。规定要反转的字符串。
  echo和print都可以做输出,不同的是,echo不是函数,没有返回值,而print是一个函数有返回值,所以相对而言如果只是输出 echo 会更快,而print_r通常用于打印变量的相关信息,通常在调试中使用。
  print 是打印字符串
  print_r 则是打印复合类型 如数组 对象
  $arr = array('a','b','c');
  foreach($arr as &$v){ }
  print_r($arr);
  结果:
  Array ( [0] => a [1] => b [2] => c )
  foreach($arr as $v){ }
  print_r($arr);
  结果:
  Array ( [0] => a [1] => b [2] => b )
   HTTP请求
  请求方法(所有方法全为大写)有多种,各个方法的解释如下:
  GET 请求获取Request-URI所标识的资源
  POST 在Request-URI所标识的资源后附加新的数据
  HEAD 请求获取由Request-URI所标识的资源的响应消息报头
  PUT 请求服务器存储一个资源,并用Request-URI作为其标识
  DELETE 请求服务器删除Request-URI所标识的资源
  TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
   CONNECT 保留将来使用
  OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
  HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文
  1、状态行格式如下:
  HTTP-Version Status-Code Reason-Phrase CRLF
  其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的`文本描述。
  状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
  1xx:指示信息--表示请求已接收,继续处理
  2xx:成功--表示请求已被成功接收、理解、接受
  3xx:重定向--要完成请求必须进行更进一步的操作
  4xx:客户端错误--请求有语法错误或请求无法实现
  5xx:服务器端错误--服务器未能实现合法的请求
  常见状态代码、状态描述、说明:
  200 OK //客户端请求成功
  400 Bad Request //客户端请求有语法错误,不能被服务器所理解
  401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
  403 Forbidden //服务器收到请求,但是拒绝提供服务
  404 Not Found //请求资源不存在,eg:输入了错误的URL
  500 Internal Server Error //服务器发生不可预期的错误
  503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
  eg:HTTP/1.1 200 OK (CRLF)
  2、响应报头后述
  3、响应正文就是服务器返回的资源的内容

;

php知识框架总结

php知识框架总结
   篇一:php基础知识点总结

  PHP语言基础简单整理
  1.开始结束标记的格式只有在没有判断语句时才能使用。
  对表单传递的变量进行编码和解码:PHP中实现对查询字符串进行URL编码可以通过函数urlencode()实现,该函数的使用格式如下:string urlencode(string str);对URL编码后的查询字符串进行解码,可以通过urldecode()函数实现,该函数的使用格式如下:string urldecode(string str);
  15.PHP连接数据库:
  步骤: 一、建立连接------mssql_connect(server,uid,pwd);
  二、指定database-------mssql_select_db(databasename);
  三、执行sql------mssql_query($sql,$link);
  四、处理记录集-------资源类型数据,格式:bof---数据---eof
  五、以特定格式读取数据-----mssql_fetch_array()....
  六、释放相关资源、关闭连接------mssql_free_result($result);mssql_close();
  16.数组:php的数组由键值和value值组成
  定义:$array = array("键值"=>"value","键值"=>"value","键值"=>"value");如果不给键值赋值,默认从0开始的int值
  相关函数:(1)in_array("值",数组名); 返回bool型-----查看数组中是否存在某value值
  (2)array_key_exists("key值",数组名); 返回bool型-----查看数组中是否存在某键值
  (3)array_keys(数组名);---将数组键值返回出来形成一个新数组,此键值作为新数组的value值
  (4)array_values(数组名);---将数组value值返回出来形成一个新数组,此值作为新数组的value值
  (5)key(数组名);----返回当前指针指向的元素key值
  (6)current(数组名);----返回当前指针指向的元素value值
  (7)next(数组名);----挪动当前数组指针到下一步
  (8)reset(数组名);----恢复数组指针,指向第0个元素
  (9)end(数组名);----将指针挪向最后一个元素
  (10)prev(数组名);----将指针向前挪动一位
  (11)foreach(数组名 as $key=>$value)
  {
  $key是键值,$value是value值,实现数组遍历
  }
  (12)each(数组名);----将当前数组元素依次取出(自动挪动指针)并放到一个新的数组中
  (13)array_shift(数组名);----返回数组中第一个元素值
  (14)array_pop(数组名);----返回数组最后一个元素值
  (15)array_push(数组名,value);----向数组中追加元素
  (16)array_unshift(数组名,value);----在数组最前面添加元素
  (17)array_pad(数组名,数组长度,value);----向数组中追加多个元素,对数组副本操作,不改变原数组,返回一个新数组
  (18)count();----返回个数
  (19)array_unique(数组名);----去掉数组中重复部分,操作数组副本,不改变原数组,返回新数组
  (20)sort(数组名);----从小到大升序排列数组value值,一般针对int型value值,返回bool型,成功返回true
  (21)rsort(数组名);----从大到小,逆序排列数组value值
  (22)array_combine(数组1,数组2);----将数组1的value值作为key,数组2的value值作为value值,形成一个新数组
  (23)array_merge(数组1,数组2,数组3...);----合并多个数组,将多个数组value值依次合并,合为一个数组
  (24)array_slice(数组名,int,int);----从目标数组截取元素,形成一个新数组。开始位置为第二个参数,结束位置为第三个参数。若第三个参数不写,则默认是截取到最后。
  (25)array_splice();----用法同array_slice();但是其截取部分从原数组中删除
  (26)explode("字符依据",目标字符串);----将字符串按照一定的依据拆分成数组
  (27)implode("字符依据",目标数组);----将数组元素按照依据组合成一个字符串
  (28)range(mixed low,mixed high[number step]);----生成数组,例:range(1,100,8);---即从1到100,每8位取一个数,组成一个数组
  (29)shuffle(数组名);----用于将数组进行随机排序
  (30)array_sum(数组名);----对数值型数组元素值进行求和
  (31)array_chunk(数组名,int);----分割目标数组,返回一个新数组,其中数组的每个元素都是一个一维数组,int参数为分割成的一维数组的长度
  17.Cookie和会话控制:
  Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在客户机上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web站点都可以访问Cookie信息。
  存在server端的是session,存在client端的是cookie,它们用来存储全局变量。 设定Cookie值:setcookie("名","值");
  通过Cookie数组取值:$_cookie["名"];
  设置生成期:setcookie("名","值",time()+1800);生成期为当前时间加1800秒之后。
  删除cookie: setcookie("名","",time()-3600);中间值设置为空,并将当前时间减去3600秒。 Cookie数组:setcookie("名[key]","值"); 使用foreach读取。
  在PHP中可以通过$_COOKIE预定义变量访问Cookie的值。如果设置了php.ini中的register_long_arrays,那么就能够应用$_COOKIE和$HTTP_COOKIE_VARS;如果在php.ini中还设置了register_globals,那么就可以在PHP中作为全局变量使用各个Cookie值。但是,更改php.ini中的两个文件设置,容易对PHP的安全构成威胁,不推荐使用该方法,建议使用更新的$_COOKIE。
  会话ID的传送
  会话ID的传送有两种方式,一种是Cookie方式,另一种是URL方式。
  Cookie传送方式:
  这是最简单的会话方式,但是有些客户可能限制使用Cookie,如果客户限制使用Cookie的条件下,仍要继续工作,那就要通过其他方式来实现了。
  URL传送方式:
  在该方式中,URL本身用来传送会话,会话标志被简单地附加到URL的尾部,或者作为窗体中的一个变量来传递。例:

新手入门php要学哪些内容呢?

1、WEB基础
要知道网站是什么东西,所使用的协议是怎么工作的,怎样把网站放在服务器上。
2、HTMLphp
HTMLphp是嵌入在HTML的语言,所以HTML是必须的。可以用HTML写出简单的静态的页面,放在本机的服务器上看看效果。
3、DIV+CSS
能够用DIV+CSS布局做出漂亮的精美静态网页。
4、php基础
学习php基础,如php语法,php变量,php流程控制,php函数,php数组应用,php字符串处理,php常用模块,php文件处理,php动态图像处理,会话控制等,就可以把静态页面变成动态的。这个阶段比较枯燥,主要是记忆,必须能够熟练应用。
5、MySQL
网站往往包含大量的信息,这些信息不可能都放在程序(php文件)中,需要MySQL来储存大量的数据信息。
6、Javascript
掌握了以上内容就可以搭建一个php基础网站,但是还需要靠Javascript来完成网站的特效和信息验证等。
7、php高级
作为一个可以上线运营的全功能网站,还要继续学习php高级知识,如php面向对象,数据抽象层PDO,MEMCACHE,高级SESSION,php的设计模式,MVC,smarty模板,主流框架的解读等内容,这个阶段需要多读优质的开源代码,多写代码。
8、Linux
正如大家所熟知的php较佳的搭配是LAMP(Linux+Apache+MySQL+Php)或LNMP(Linux+Nginx+MySQL+Php),那么显然在Linux系统下的php网站比在Windows下兼容性好,基于此我们需要知道在Linux下搭建php环境的方法以及Linux的日常管理命令,以便我们网站的日常管理运营。
9、项目相关
这个阶段首先需要了解项目开发流程,需求分析,程序设计说明书,数据库设计说明书,编码规范,大流量/大数据架构,MYSQL深度优化,全文索引等内容。
目前为止学到这个阶段,已经可以算是php小牛了,要继续向php大牛进发就需要参与开发大型网站项目,以此练手。北大青鸟认为参与大项目开发,实践为主。通过这阶段的学习就可以自主做企业网站、论坛、网页游戏等。

应知道哪些PHP数据库的基础知识?

这个问题问得有点模糊,什么叫PHP数据库?应该是PHP操作数据库吧。如果是说PHP操作数据库的话,那你应该了解如下内容:
1、市面上有哪些数据库。市面上有很多数据库,既有SQL型的数据库,如MySql、SQLSever,也有Nosql型数据库,如Redis、Mongodb
2、PHP可以操作哪些数据库。PHP基本上可以操作市面上的所有数据库。
3、PHP是如何操作数据库的。PHP操作数据库是有两种方式,一种是使用PHP中对应数据库的扩展,如操作mysql,PHP可以使用Mysqli扩展;另一种是使用PDO扩展和对应的数据库驱动。
4、这些数据库扩展如何安装启动的。通常一些常见的数据库的扩展PHP源码是有包含的,如PDO、MySql,所以像这种你只需要在安装PHP时,通过设置几个参数来启用就好,但像Redis、Mongodb等这些PHP源码里没有包含,所以在安装好PHP后,你需要先下载这些扩展,然后编译,最后在php.ini文件里开启。
5、如何使用PHP代码操作这些数据库。在安装好对应的扩展后,你基本上就可以使用PHP代码操作数据库了,如连接数据库、执行数据库操作、关闭数据库,但具体怎么写,可以参考对应扩展的开发文档,一般文档都有明确说明。
了解了以上几点,你就可以使用PHP操作数据库了

PHP函数代码基础知识?

我们在学习PHP开发相关基础知识的时候,对于不同的开发原理以及代码的使用都是基本的能力要求。今天,回龙观电脑培训就一起来了解PHP开发基础知识中的函数代码都有哪些。
array()
array(value1,value2..)创建数组
array_chunk(array,size,preserve_keys)把一个数分割成新的数组块[tk]
array_combine(keys,values)通过合并两个数组(键名数组,键值数组)组成一个新的数组
array_count_values(array)用于统计数组中所有值出现的次数
array_diff(array1,array2,...)比较数组返回两个数组的差集(只比较键值)
array_diff_assoc(array1,array2,..)比较数组返回两个数组的差集(比较键名和键值)
array_diff_key(array1,array2,...)比较数组返回两个数组的差集(只比较键名)
array_fill(index,number,value)用给定的键值填充数组
array_filter(array,要用的回调函数)用回调函数过滤数组中的元素
array_flip(array)反转/交换数组中的键名和对应关联的键值[flp]
array_keys(array)返回数组中的所有键名
array_merge(array1,array2,..)把一个或多个数组合并一个数组[m:rd]
array_pad(array,size,value)将指定数量的带有指定值的元素插入到数组中
array_pop(array)删除后一个元素
array_push(array)末尾添加数组
array_shift(array())删除数并返回被删除的元素值
array_unshift(array))组中的一个元素添加一个或多个元素
array_rand(array,number)从数组中随机选出一个或多个数组
array_replace(array1,array2...)使用后面数组的值替换一个数组的值
array_reverse(array)数组反转并返回新的数组
array_search(value,array,strict(可选true,flase))搜索值返回键名。True搜索键名和值都一样的元素
array_slice(array,start,length,preserve)返回数组中的选定部分
array_splice(array,start,length,array)把指定的元素去掉并用其他的替换
array_unique(array)删除数组中的重复值美[junik]
array_values(array)返回数组中的所有值
array_key_exists(key,array)查找数组键名是否存在
count(array)返回数组中元素的数目美[kant]
in_array(‘值’,$array,bool)检查数组中是否存在指定的值设置为TRUE,则in_array
函数检查搜索的数据与数组的值的类型是否相同。

阅读更多 >>>  PHP取得一个类的属性和方法的实现代码

学习PHP需要涉及哪些方面的知识

  1,保证你在手册的帮助下能看懂PHP代码。
2,保证你可以基本使用MySQL,常用的查询,包括联合查询都要会。MySQL的安装和用户权限配置要会。
3,熟练使用table,理解HTML的数据组织和显示逻辑。
4,理解CSS并可以进行DIV+CSS的布局,掌握 DIV , UL , DL , SPAN , P 等常见标记。(如果是专业人员,还要学习浮动,定位,lightbox等)。
5,可以写常用的Javascript代码,并开始学习Javascript的库,例如Jquery。学习JS的库记住不要一下子去看源代码,先看手册然后根据例子学习,学会调用就可以了。(专业前台要研究库文件)。
  1~5完成后,掌握了基本功,并且具备了单个文件处理问题的能力。这个时候开始学习业务逻辑。就是通过代码的组织做出一个一个使用的功能。最基本的就是留言本了。这个部分最重要的就是理解,网站显示习惯,设置习惯,管理习惯,用户发布习惯。
6,熟练编写 留言本。可以熟练地通过几个PHP文件来实现小功能。比如,那些文件用来显示,哪些文件用来管理,哪些文件用来发布内容。并且粗略了解了会员功能。(可以下载留言本程序研究学习)。
7,开始接触大点的项目。先了解网站的网页流程。培养流程思路。这个时候,可以多装几个开源的PHP产品(包括国内外的),例如Discuz,DeDeCMS,Drupal等等。先不看这些产品的核心代码。看些配置,安装,模板的应用和接口。
8,开始了解网站业务架构,包括前台,后台,会员,数据流(用户到数据库,数据库到用户)。熟练掌握流程设计,比如要增加一个图片上传功能,需要几个文件。
9,找工作进行实践,一开始不要太挑剔,但是一定要找让你发挥的公司,开始接触客户需求,如何整理文档,解决bug。
10,在工作半年到一年左右,开始进行总结,根据选择的公司和你所做的应用,开始总结开发模式,模板引擎,数据库设计,等。
  
php主要是做WEB开发的,一般就是网站,网站分前台和后台。前台涉及html,css,javascript.后台涉及php,mysql
然后网站运行需要服务器apache.最后操作系统window和linux.基本就这些
PHP比你过去学过的语言还要简单,估计一天你就学会语法。不过PHP的价值在于开源资源,你不但要熟悉语法,最重要要熟悉开源系统的用法。
比如dedecms, joomla, drupal
基础知识:
PHP:面向过程+面向对象
数据库常规=>MySQL入门知识
基本配置:PHP, MySQL (或者你选择的数据库), Linux, Apache
C/C++的一些入门知识
提高:
模板
一个类库,如PEAR
协作+代码管理
PHP需要掌握的知识还是比较多的,最基本的比如:PHP基本的语法、php框架以及CMS、mysql数据库设计表、mysql数据库的基本SQL语句。现在一般PHP的都得会前端,那就包括:js/ajax、html、css。如果更高点层次的就是linux服务器。
PHP攻城狮践行学习路线图:
1、用集成环境安装PHP环境,一定要记住这一点,不要自己分开去装,尤其是自学的朋友。不然你会觉得很复杂,会没有信心学下去的。也要注意任何高手都不是一蹴而就的,是一步一步,不同的阶段历练才有最后的沉淀。
2、先了解一些基本的变量类型,语法,函数,基本逻辑,写简单的代码。前期以尝试,培养兴趣为主。这段时间是打基础很好的时候,这个会影响你后面的发展,不过也可以在后期去完善。
3、这时候你可能觉得PHP就这样,没什么难度,或者有的觉得太难了,简直一脸疑惑。这个到底有什么用。在这时候一定要坚持下来,可以试试先放一下,别太较真。慢慢的困惑你的会被你领悟的。这时,建议学习html+css+js,缓解自己的压力,这个相对简单,简历信心。尤其是js,总结其实有相同的思路,可以结合着一起体会。
4、这些都感觉有80%了解就可以先放放了,现在在学习MySQL,也是先了解基础的。这个是干什么的,我可以用它做什么。因为之前装的集成环境。为什么感觉是凌乱的,我想告诉你的是,一是不要在自己没能力解决问题的时候死磕,浪费时间,丧失信心。这时候我们要做的是学习壮大自己,不要灰心。二是我本来觉得这一切都了解才是完整的。我们的目标也是要把这些都做好,这才是一个合格的PHP程序员。
5、这一切都顺利的话,你基本离预设的目标不远了,完成了整个学习的70%了。后面的是在之前的基础上升华。把HTML和css、js结合、静态文件和PHP结合、PHP和MySQL结合。这个阶段可能越到的问题会异常的多,一定要学会解决问题。网上很多都是答案,同样你要学会问问题。
6、这些之后你基本已经快到学习的尾声了,但还缺少经验。这时,你可以看一些网上开源的cms,例如织梦,国内用的多,越到问题好解决。看看一些视频(网上免费的很多),查漏补缺,总结归纳形成自己的知识体系。是时候该准备庆祝下自己这段的时间没有白费(一般2到3各月,看平时每天花的时间),基本成为一个合格的PHP程序员了。也该恭喜你了,其实并不那么难。坚持,坚持;努力,努力;学习,学习

PHP程序员要掌握哪些技术

其实PHP是弱类型语言,要掌握的最先是基础知识过度到面向对象,面向对象是最重要的!!然后再过度到php操作Mysql,这个是核心。然后最关键的大boss就是PHP的MVC框架!!如今现在最热门的PHP框架是laravel,外国人开发的,很牛逼的一个框架。如果你要入门先学thinkphp,国人自己开发的,思路什么的都跟的上。
php的框架你学了一个就会发现其他的都是一样的套路了,基本的看公司开发要用到哪个,我建议学的常用的有:thinkphp,codeIgniter,yii,laravel。
当以上的你都学好了,还得学一个redis和Memcached,这两个是缓存,很重要!
当上门都学会了,找到一份PHP工作都是小事。
希望可以帮到你,有什么不懂可以追问。
做一个PHP程序员需要掌握以下相关知识:
1、最基础的HTML知识;
2、PHP语言相关知识(如果对C语言有了解过的话,学习效率会提升。);
3、前端开发的相关知识,如js,jquery,ajax,CSS等;
4、数据库知识,如MYSQL,MSSQL,Oracle等数据库常用操作及调优等;
5、服务器知识,即自己能搭配网站运行的服务器,同时要能够解决一些常见的问题;
6、网络安全知识;
7、简单SEO知识;
8、其它一些程序语言也要能看懂,例如:asp,.net,js,java等;

PHP开发人员的Python基础知识

  PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。那么PHP开发人员的Python基础知识都有哪些呢?以下仅供参考!
   常用缩略语
  Ajax:异步 JavaScript + XML
  XML:可扩展标记语言(Extensible Markup Language)
   什么是 Python?
  Python 的定义是一种 “通用的高级编程语言”。它以简洁性和易用性著称,而且是少有的几种对空格和缩进有要求的语言之一。Python 的主要作者 Guido Van Rossum 在社区中仍然非常活跃,并且被人们戏称为仁慈的领导。
  Python 的灵活性和紧凑性是值得称赞的。它支持面向对象编程、结构化编程、面向方面编程以及函数编程等。Python 采用小内核设计,但具备大量扩展库,从而确保了该语言的紧凑性和灵活性。
  从语法的角度来说,您会发现 Python 的简洁性异常突出——几乎可以说是一种纯粹的境界。PHP 开发人员要么会对这种方法的语法深深陶醉,要么会发现它的局限性。这主要取决于您自己的见解。Python 社区推动这种美感的态度是非常明确的,它们更加重视的是美学和简洁性,而不是灵动的技巧。已形成 Perl 传统(“可以通过多种方式实现它”)的 PHP 开发人员(像我自己)将面对一种完全相反的哲学(“应该只有一种方法可以实现它”)。
  事实上,该社区定义了一种特有的代码风格术语,即 Python 化(pythonic)。您可以说您的代码是 Python 化,这是对 Python 术语的良好运用,同时还可展现语言的自然特性。本文并不打算成为 Pythonista(或 Pythoneer),但如果您想继续 Python 之路,那么千万不能错过本文的知识点。就像 PHP 有自己的编程风格,Perl 有自己的概念方法,学习 Python 语言必然也需要开始用该语言来思考问题。
  另一个要点:在撰写本文时,Python 的最新版本是 V3.0,但本文主要侧重于 Python V2.6。Python V3.0 并不能向后兼容之前的版本,而且 V2.6 是使用最为广泛的版本。当然,您可以根据需求使用自己喜好的版本。
   Python 与 PHP 有何不同?
  一般来说,PHP 是一种 Web 开发语言。是的,它提供了一个命令行接口,并且甚至可用于开发嵌入式应用程序,但它主要还是用于 Web 开发。相反,Python 是一种脚本语言,并且也可用于 Web 开发。从这方面来说,我知道我会这样说——它比 PHP 更加接近 Perl。(当然,在其他方面,它们之间并无实际不同。我们继续往下看。)
  PHP 的语法中充斥着美元符号($)和大括号({}),而 Python 相对来说则更加简洁和干净。PHP 支持 switch 和 do...while 结构,而 Python 则不尽然。PHP 使用三元操作符(foo?bar:baz)和冗长的函数名列表,而命名约定更是无所不有;相反,您会发现 Python 要简洁多了。PHP 的数组类型可同时支持简单列表和字典或散列,但 Python 却将这两者分开。
  Python 同时使用可变性和不变性的概念:举例来说,tuple 就是一个不可变的列表。您可以创建 tuple,但在创建之后不能修改它。这一概念可能要花些时间来熟悉,但对于避免错误极为有效。当然,更改 tuple 的惟一方法是复制它。因此,如果您发现对不可变对象执行了大量更改,则应该重新考量自己的方法。
  之前提到,Python 中的缩进是有含义的:您在刚开始学习该语言时会对此非常难以适应。您还可以创建使用关键字作为参数的函数和方法——这与 PHP 中的标准位置参数迥然不同。面向对象的追随者会对 Python 中真正的面向对象思想感到欣喜,当然还包括它的 “一级” 类和函数。如果您使用非英语语言,则会钟爱于 Python 强大的.国际化和 Unicode 支持。您还会喜欢 Python 的多线程功能;这也是最开始令我为之着迷的特性之一。
  综上所述,PHP 和 Python 在许多方面都彼此类似。您可以方便地创建变量、循环,使用条件和创建函数。您甚至可以轻松地创建可重用的模块。两种语言的用户社区都充满活力和激情。PHP 的用户群体更加庞大,但这主要归因于它在托管服务器及 Web 专注性方面的优势和普及性。
   很好 简要介绍到此为止。我们开始探索之旅。
   使用 Python
  清单 1 展示了一个基本的 Python 脚本。
  清单 1. 一个简单的 Python 脚本
  for i in range(20):
  print(i)
  清单 2 展示了脚本的必然结果。
  清单 2. 清单 1 的结果
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  在深入探索之前,我们先来了解一些预备知识。首先从变量开始。
  变量
  可以看到,表示变量并不需要任何特殊的字符。变量 i 就是一个纯粹的 i——毫无特殊之处。表示代码块或语言结束也不需要任何特殊字符(比如分号和括号);只需要在 for 行使用一个简单的冒号即可(:)。还需注意,缩进会向 Python 指示哪些内容属于 for 循环。举例来说,清单 3 中的代码会在循环中为各编号输出一个说明。
  清单 3. 为各循环添加一条语句
  for i in range(20):
  print(i)
  print('all done?')
  相反,清单 4 中的代码会在循环结束处输出一条说明。
  清单 4. 在循环后添加一条语句
  for i in range(20):
  print(i)
  print('all done!')
  现在,我第一次看到这样的代码时,我认为这完全是无稽之谈。什么?让我相信换行和缩进能保证代码的结构和运行?请相信我,不用多久,您就会习惯它(但我需要承认必须到达到分号处才会结束语句的运行)。如果您与其他开发人员共同开发 Python 项目,则会发现这种可读性的用处是多么大了。您不再像以前那样总是猜测 “这个聪明的家伙在这里究竟想干些什么?”
  在 PHP,您使用 = 操作符为变量分配值(参见 清单 5)。在 Python 中,您使用相同的操作符,只是需要标记或指向值。对于我来说,它就是赋值操作而已,我不需要过多担心专门的术语。
  清单 5. 创建变量
  yorkie = 'Marlowe' #meet our Yorkie Marlowe!
  mutt = 'Kafka' #meet our mutt Kafka
  print(mutt) #prints Kafka
  Python 的变量名称约定与 PHP 类似:您在创建变量名时只能使用字母、数字和下划线(_)。同样,变量名的第一个字符不能是数字。Python 变量名是区分大小写的,并且您不能使用特定的 Python 关键字(比如 if、else、while、def、or、and、not、in 和 is 开始符)作为变量名。这没有什么值得奇怪的。
  Python 允许您随意执行基于字符串的操作。清单 6 中的大多数操作应该都是您熟悉的。
  清单 6. 常见的基于字符串的操作
  yorkie = 'Marlowe'
  mutt = 'Kafka'
  ylen = len(yorkie) #length of variable yorkie
  print(ylen) #prints 7
  print(len(yorkie)) #does the same thing
  len(yorkie) #also does the same thing, print is implicit
  print(yorkie.lower()) #lower cases the string
  print(yorkie.strip('aeiou')) #removes vowels from end of string
  print(mutt.split('f')) #splits "Kafka" into ['Ka', 'ka']
  print(mutt.count('a')) #prints 2, the number of a's in string
  yorkie.replace('a','4') #replace a's with 4's
   条件语句
  您已经了解了如何使用 for 循环;现在,我们来讨论条件语句。您会发现 Phyon 中的条件语句与 PHP 基本相同:您可以使用熟悉的 if/else型结构,如清单 7 所示。
  清单 7. 一个简单的条件测试
  yorkie = 'Marlowe'
  mutt = 'Kafka'
  if len(yorkie) > len(mutt):
  print('The yorkie wins!')
  else:
  print('The mutt wins!')
  您还可以使用 if/elif/else(elif,等价于 PHP 中的 elseif)创建更加复杂的条件测试,如清单 8 所示。
  清单 8. 一个比较复杂的条件测试
  yorkie = 'Marlowe'
  mutt = 'Kafka'
  if len(yorkie) + len(mutt) > 15:
  print('The yorkie and the mutt win!')
  elif len(yorkie) + len(mutt) > 10:
  print('Too close to tell!')
  else:
  print('Nobody wins!')
  您可能会说,目前为止并没有什么与众不同的地方:甚本上和想像中没有太大区别。现在,我们来看 Python 处理列表的方式,您会发现两种语言之间的不同之处。
  列表
  一种常用的列表类型是 tuple,它是不可变的。在 tuple 中载入一系列值之后,您不会更改它。Tuple 可以包含数字、字符串、变量,甚至其他 tuples。Tuples 从 0 开始建立索引,这很正常;您可以使用 -1 索引访问最后一个项目。您还可以对 tuple 运行一些函数(请参见清单 9)。
  清单 9. Tuples
  items = (1, mutt, 'Honda', (1,2,3))
  print items[1] #prints Kafka
  print items[-1] #prints (1,2,3)
  items2 = items[0:2] #items2 now contains (1, 'Kafka') thanks to slice operation
  'Honda' in items #returns TRUE
  len(items) #returns 4
  items.index('Kafka') #returns 1, because second item matches this index location
  列表与 tuple 类似,只不过它们是可变的。创建列表之后,您可以添加、删除和更新列表中的值。列表使用方括号,而不是圆括号(()),如清单 10 所示。
  清单 10. 列表
  groceries = ['ham','spam','eggs']
  len(groceries) #returns 3
  print groceries[1] #prints spam
  for x in groceries:
  print x.upper() #prints HAM SPAM EGGS
  groceries[2] = 'bacon'
  groceries #list is now ['ham','spam','bacon']
  groceries.append('eggs')
  groceries #list is now ['ham', 'spam', 'bacon', 'eggs']
  groceries.sort()
  groceries #list is now ['bacon', 'eggs', 'ham', 'spam']
  字典类似于关联数组或散列;它使用键值对来存储和限制信息。但它不使用方括号和圆括号,而是使用尖括号。与列表类似,字典是可变的,这意味着您可以添加、删除和更新其中的值(请参见清单 11)。
  清单 11. 字典
  colorvalues = {'red' : 1, 'blue' : 2, 'green' : 3, 'yellow' : 4, 'orange' : 5}
  colorvalues #prints {'blue': 2, 'orange': 5, 'green': 3, 'yellow': 4, 'red': 1}
  colorvalues['blue'] #prints 2
  colorvalues.keys() #retrieves all keys as a list:
  #['blue', 'orange', 'green', 'yellow', 'red']
  colorvalues.pop('blue') #prints 2 and removes the blue key/value pair
  colorvalues #after pop, we have:
  #{'orange': 5, 'green': 3, 'yellow': 4, 'red': 1}
  在 Python 中创建一个简单的脚本
  现在,您已经对 Python 有了一定的了解。接下来,我们将创建一个简单的 Python 脚本。该脚本将读取位于您的服务器 /tmp 目录下的 PHP 会话文件的数量,并在日志文件中写入摘要报告。在该脚本中,您将学习如何导入特定函数的模块,如何使用文件,以及如何写入日志文件。您还将设置一系列变量来跟踪所收集的信息。
  清单 12 展示了整个脚本。打开一个编辑器,并将代码粘贴到其中,然后在系统中将该文件保存为 tmp.py。然后,对该文件运行 chmod + x,使它成为可执行文件(假定您使用 UNIX? 系统)。
  清单 12. tmp.py
  #!/usr/bin/python
  import os
  from time import strftime
  stamp = strftime("%Y-%m-%d %H:%M:%S")
  logfile = '/path/to/your/logfile.log'
  path = '/path/to/tmp/directory/'
  files = os.listdir(path)
  bytes = 0
  numfiles = 0
  for f in files:
  if f.startswith('sess_'):
  info = os.stat(path + f)
  numfiles += 1
  bytes += info[6]
  if numfiles > 1:
  title = 'files'
  else:
  title = 'file'
  string = stamp + " -- " + str(numfiles) + " session "
  + title +", " + str(bytes) + " bytes "
  file = open(logfile,"a")
  file.writelines(string)
  file.close()
  在第一行中,您可以看到一个 hash-bang 行:它用于标识 Python 解释器的位置。在我的系统中,它位于 /usr/bin/python。请根据系统需求调整这一行。
  接下来的两行用于导入特定的模块,这些模块将帮助您执行作业。考虑到脚本需要处理文件夹和文件,因此您需要导入 os 模块,因为其中包含各种函数和方法,可帮助您列出文件、读取文件和操作文件夹。您还需要写入一个日志文件,因此可以为条目添加一个时间戳 — 这就需要使用时间函数。您不需要所有时间函数,只需要导入 strftime函数即可。
  在接下来的六行中,您设置了一些变量。第一个变量是 stamp,其中包含一个日期字符串。然后,您使用 strftime 函数创建了一个特定格式的时间戳 — 在本例中,时间戳的格式为 2010-01-03 12:43:03。
  接下来,创建一个 logfile 变量,并在文件中添加一个实际存储日志文件消息的路径(该文件不需要实际存在)。为简单起见,我在 /logs 文件夹中放置了一个日志文件,但您也可以将它放置在别处。同样,path 变量包含到 /tmp 目录的路径。您可以使用任何路径,只要使用斜杠作为结束即可 (/)。
  接下来的三个变量也非常简单:files 列表包含指定路径中的所有文件和文件夹,另外还包含 bytes 和 numfiles 两个变量。这两个变量都设置为 0;脚本会在处理文件时递增这些值。
  完成所有这些定义之后,接下来就是脚本的核心了:一个简单的 for 循环,用于处理文件列表中的各文件。每次运行循环时,脚本都会计算文件名;如果它以 sess_ 开头,则脚本会对该文件运行 os.stat(),提取文件数据(比如创建时间、修改时间和字节大小),递增 numfiles 计数器并将该文件的字节大小累计到总数中。
  当循环完成运行后,脚本会检查 numfiles 变量中的值是否大于 1。如果大于 1,则会将一个新的 title 变量设置为 files;否则,title 将被设置为单数形式的 file。
  脚本的最后部分也非常简单:您创建了一个 string 变量,并在该变量中添加了一行以时间戳开始的数据,并且其后还包含 numfiles(已转换为字符串)和字节(也已转换为字符串)。请注意继续字符();该字符可允许代码运行到下一行。它是一个提高可读性的小技巧。
  然后,您使用 open() 函数以附加模式打开日志文件(毕竟始终需要在该文件中添加内容),writelines() 函数会将字符串添加到日志文件中,而 close() 函数用于关闭该文件。
  现在,您已经创建了一个简单的 Python 脚本。该脚本可用于完成许多任务,举例来说,您可以设置一个 cron作业来每小时运行一次这个脚本,以帮助您跟踪 24 小时内所使用的 PHP 会话的数量。您还可以使用 jQuery 或其他一些 JavaScript 框架通过 Ajax 连接这个脚本,用于为您提供日志文件提要(如果采用这种方式,则需要使用 print命令来返回数据)。

阅读更多 >>>  网站源码在linux上如何使用

PHP工程师面试常见问题有哪些

网站数据信息

"php基础知识大全,PHP工程师面试常见问题有哪些"浏览人数已经达到18次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:php基础知识大全,PHP工程师面试常见问题有哪些的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!