PHP的问题:全面阐述PHP网站设计的问题(5)_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

PHP的问题:全面阐述PHP网站设计的问题(5)

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:网站设计PHP
黑客防线网安网讯:  标准库    Perl“某些需要汇编”。Python是“batteriesincluded”。PHP是“厨房水槽,它来自加拿大,但所有的水龙头用C贴牌”。    概括    没有类型系统。你可以编译PHP,...
  标准库
  
  Perl“某些需要汇编”Python是“batteriesincluded”PHP是“厨房水槽它来自加拿大但所有的水龙头用C贴牌”。
  
  概括
  
  没有类型系统。你可以编译PHP,但必须通过php.ini指定要加载什么,选项因扩展部分存在(將它们的内容注入到全局名称空间中)或不存在。
  
  因为名称空间是最近才有的特性,标准库一点没被打乱。在全局名称空间中有上千个函数。
  
  库的某些部分很不一致。
  
  下划线对无下划线:strpos/str_rot13,php_uname/phpversion,base64_encode/urlencode,gettype/get_class
  
  “to”对2:ascii2ebcdic,bin2hex,deg2rad,strtolower,strtotime
  
  Object+verb对verb+object:base64_decode,str_shuffle,var_dumpversuscreate_function,recode_string
  
  参数顺序:array_filter($input,$callback)versusarray_map($callback,$input),strpos($haystack,$needle)versusarray_search($needle,$haystack)
  
  前缀混乱:usleepvsmicrotime
  
  Caseinsensitivefunctionsvaryonwheretheigoesinthename.
  
  大概一半的数组函数以array_开头。剩下的不是。
  
  厨房水槽。库包括:
  
  绑定ImageMagick,绑定GraphicsMagick(ImageMagick的派生),少量的几个函数能检测EXIF数据(其中ImageMagick已经可以做到)
  
  解析bbcode的函数,一些非常特殊的标记,被几个少量的论坛包使用。
  
  太多XML包。DOM(OO),DOMXML(not),libxml,SimpleXML,“XMLParser”,XMLReader/XMLWriter,和一大砣我不能认出的东西就省略了。当然会有些不同,你可以自由的弄清晰它们的区别。
  
  绑定了两个特别的信用卡处理器,SPPLUS和MCVE.什么?
  
  三种访问MySQL数据库的方式:mysqlmysqli,和PDO抽象的一些东西。
  
  C影响
  
  它需要拥有的自己的符号。PHP是个高层的,动态类型的语言。然后大量的标准库的部分仍然只是围绕CAPIS的薄层封装,伴随着下面的东西:
  
  ”Out”参数,尽管PHP可以返回ad-hoc哈希或毫不费力的返回多参数。
  
  至少一打的函数是为了获取某子系统的最近一次错误(见下文),尽管PHP已存存异常处理功能8年了。
  
  有个mysql_real_escape_string,尽管已有个具有相同参数的mysql_escape_string,仅仅因为它是MySQLCAPI的一部分。
  
  全局行为却是非全局功能的(如MySQL)。使用多个MySQL连接需要显示的对每个函数调用传递连接句柄。
  
  包装器真的,真的,真的很薄。例如,调用了dba_nextkey而没调用dba_firstkey將出现段错误。
  
  有一堆的ctype_*函数(如ctype_alnum)映射类似名称的C字符函数,而不是如,isupper.
  
  Genericism
  
  如果函数相做两件略有不同的事,PHP就搞出两个函数。
  
  你怎样反向排序?在Perl中,你可以用{$b<=>$a}。在Python中,你可能用.sort(reverse=True)。在PHP中,有个特别的函数叫rsort()。
  
  那些看起来像Cerror的函数:curl_error,json_last_error,openssl_error_string,imap_errors,mysql_error,xml_get_error_code,bzerror,date_get_last_errors,还有其它的吗?
  
  排序函数:array_multisort,arsort,asort,ksort,krsort,natsort,natcasesort,sort,rsort,uasort,uksort,usort
  
  文本检索函数:ereg,eregi,mb_ereg,mb_eregi,preg_match,strstr,strchr,stristr,strrchr,strpos,stripos,strrpos,strripos,mb_strpos,mb_strrpos,plusthevariationsthatdoreplacements
  
  有大量的别名:strstr/strchr,is_int/is_integer/is_long,is_float/is_double,pos/current,sizeof/count,chop/rtrim,implode/join,die/exit,trigger_error/user_error…
  
  scandir返回一个当前给出目录的文件列表。而不是(可能有益)按返回目录顺序返回,函数返回一个已排序的文件列表。有个可选的参数可以按字母逆顺返回。这些用于排序很显然很不够。
  
  str_split將字符串拆成等长的块。chunk_split將字符串拆成等长的块,然后用个分隔符连接。
  
  读取压缩文件需要一套单独的函数,取决于格式。有六套函数,它们的API都不同,如bzip2,LZF,phar,rar,zip,和gzip/zlib
  
  因为使用参数数组调用函数是如此的别扭(call_user_func_array),所以有些配套的像printf/vprintf和sprintf/vsprintf.它们做相同的事,但一个带多个参数,另一个带参数数组。
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17699-1.html
网站维护教程更新时间:2012-09-21 05:37:34  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer