1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部)
  strlen 和mb_strlen 都是用于获取字符串长度的,其中strlen 只针对单字节编码字符,也就是说它计算的是字符串的总字节数,如果是多字节编码,如GBK和UTF-8,使用strlen得到的不是字符的个数,而是该字符的总字节数,可以使用mb_strlen 获取其字符个数,使用mb_strlen 要注意两点,一是要开启mbstring 扩展,二是要指定字符集。

  int strlen ( string $string )
  int mb_strlen ( string $str [, string $encoding ] )

$str = 'php';
echo strlen($str);  //3
echo  mb_strlen($str); //3

  结果分析:在strlen计算时,对待一个UTF8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14;在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6。

  利用这两个函数则可以联合计算出一个中英文混排的串的占位是多少(一个中文字符的占位是2,英文字符是1)

 $str='中文a字1符'; echo (strlen($str) + mb_strlen($str,'UTF8')) /2; //10 

ref

【相关】

  1、实现中文字符串截取无乱码。

  方法1:使用mb_strlen。

  方法2:自定函数,以utf-8为例:

  2、如何求解字符串“中国2北333京”的字符数(一个中文一个字符),并找到第四个字符“北”

  方法1:使用PHP内置函数,确保配置中已打开mbstring扩展。  

header("Content-Type: text/html;charset=utf-8");
$str='中国2北333京';
echo mb_strlen($str);
echo mb_substr($str,3,1,'utf-8'); //string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] 

    方法2:自定义函数实现求其长度,截取使用上面定义的substr_utf8。

2. 下列哪个函数是用正则表达式将字符串分割到数组中( )
  A. split (用正则表达式将字符串分割到数组中
  B. implode (Join array elements with a string
  C. explode (使用一个字符串分割另一个字符串
  D. join(Alias of implode)
  答案:A

3. 写出下列程序的输出结果(新浪网技术部)

$x = 87;
$y = ($x % 7) * 16;
$z = $x > $y ? 1 : 0;
echo $z; //1

 4. 写出下列几个预定义全局变量的作用(新浪网技术部)

$_SERVER['DOCUMENT_ROOT']    //当前运行脚本所在的文档根目录
$_SERVER['HTTP_HOST ']              //当前请求的Host: 头部的内容
$_SERVER['REMOTE_ADDR']         //正在浏览当前页面用户的IP 地址
$_SERVER['HTTP_REFERER']          //链接到当前页面的前一页面的URL 地址
$_SERVER['SERVER_NAME']          //当前运行脚本所在服务器主机的名称
$_FILES                                    //包含有所有上传的文件信息
S_FILES['userfile']['name']        //客户端机器文件的原名称
$_FILES['userfile']['type']        //文件MIME 类型,如果浏览器提供此信息的话,如“image/gif”。
$_FILES['userfile']['size']         //已上传文件的大小,单位为字节
$_FILES['userfile']['tmp_name']       //文件被上传后在服务端储存的临时文件名
$_FILES['userfile']['error']               //和该文件上传相关的错误代码

5. include 和require 都能把另外一个文件包含到当前文件中,他们有什么区别?Include 和include_once又有什么区别?(新浪网技术部)

  二者区别只有一个,那就是对包含文件的需求程度,include 就是包含,如果被包含的文件不存在的话,那么则会提示一个错误,但是程序会继续执行下去。而require 意思是需要,如果被包含文件不存在或者无法打开的时候,则会提示错误,并且会终止程序的执行。这两种结构除了在如何处理失败之外完全一样。
  once 的意思是一次,那么include_once 和require_once 表示只包含一次,避免重复包含。

  require 的英文意思是需要,有赖于。如果使用了这条语句,也就是告诉PHP内核,我这个程序需要这个文件,有赖于这个文件。或者通俗点儿讲就是:我要她!所以,PHP如果发现require参数中的文件不存在的话,就会报fatal error,并且停止执行下面的语句。
  include 的英文意思是包括,包含。如果使用了这条语句,也就是告诉PHP内核,程序执行时,把这个文件包含进来。通俗点儿讲就是:带上她!所以,PHP如果找不到的话,仅仅会提示说,找不到她,无法带上她。而不会停止下面脚本的执行,因为我们并没有告诉PHP内核,下面的程序有赖于这个子文件。ref

【相关】

  1、What is the difference between include & include_once? include & require?(Yahoo)
  2、语句include 和require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。
  在如何处理失败时,include() 产生一个警告而require() 则导致一个致命错误;require_once()/include_once()
  3、What functions can you use to add library code to the currently running script?(Yahoo)
  include、require

 6. 用最少的代码写一个求三值最大值的函数. (51.com笔试题) 

function isMaximum($a,$b,$c){
  return $a > $b ? ($b > $c ? $a : $c) : ($a > $c ? $b : $c);
}
echo isMaximum(1,5,6); //yahari

function Maximum($a,$b,$c){
  return $a > $b ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c);
}
echo isMaximum(24,15,8); 

7. 简述 POST 和GET传输的最大容量分别是多少? (51.com 笔试题)
  POST 根据你php.ini 文件配置(默认是8M)
  GET 的话大小限制在2KB
【相关】

  1、表单中 get与 post提交方法的区别?
  get 是发送请求HTTP 协议通过url 参数传递进行接收,而post 是实体数据,可以通过表单提交大量信息。 

?8. 有三个 php文件位于同一目录下,内容如下所示,使用浏览器访问 c.php,请问是否存在问题。如果存在问题,请指出修正方法并写出浏览器查看效果,如果不存在问题,请写出浏览器查看效果(酷讯 PHP工程师笔试题) 

9. echo(),print(),print_r()的区别?(新浪)
  echo 是一个语言结构,输出一个或多个字符串;
  print() 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起它的参数列表,它输出一个字符串;
  print_r () 是一个函数,打印变量的信息,基本类型,数组,对象。
  注意,是echo 本身支持的一种语法,而“.”则是字符串连接操作符,使用“,”的效率要高一些。
【相关】
  1、What is the difference between "print()" and "echo( )"? (腾讯)
  Answer: print is a function, echo is a language construct.

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

 

posted on 2015-01-22 15:29  yahari  阅读(134)  评论(0)    收藏  举报