php基础&实现 - nieyamei/php-interview GitHub Wiki

  1. 写一个邮箱验证(后缀@xiaoxinyong.com)【正则表达式】
   $rule = "/^[0-9a-zA-Z][email protected]$/i";   
   preg_match($rule,$email) 
  1. 输出N天以前的日期
   echo date('Y-m-d',strtotime('-N day'));
  1. 实现中文字符串截取的方法
  header("Content-type: text/html; charset=utf-8");
  echo mb_substr('rrr我爱中国',1,3,'utf-8');
  1. php获取客户端和服务端ip
获取客户端ip
  echo $_SERVER['REMOTE_ADDR'];
  echo getenv('REMOTE_ADDR');
获取服务端ip
  echo $_SERVER['SERVER_ADDR'];
  echo getenv('SERVER_ADDR');

  1. php获取外部变量的方法
  1. 闭包获取外部变量
  2. global关键字声明变量
  global改变了外部变量的值,而闭包方式并没有
  ---
  $global = 'hello';
  $fun = function(){
    global $global;
    $global ='world';
    echo 'a:'.$global."\n";
  };
  $bbb = function()use($global){
    $global = 'china';
    echo 'c:'.$global."\n";
  };
  $fun();
  echo 'b:'.$global."\n";
  $bbb();
  echo 'd:'.$global;
  输出:
  a: world
  b: world
  c:china
  d: world

  1. php数组排序的函数、以及区别
1. sort(): 用升序对数组排序
2. asort():根据数组的值进行升序排序
3. ksort():根据数组的键进行升序排序
rsort()、arsort()、krsort()这些函数加 'r' 表示降序排序
  1. 检测一个变量是否设置值?是否为空?
  isset() empty()
  1. 用什么方法获取指定网址的内容
  $url = "http://www.baidu.com"; 
  $contents = file_get_contents($url);
  1. 求两个日期的差数 如 2011-5-3到2012-1-1
   $time1 = strtotime($date1);
   $time2 = strtotime($date2);
   return ($time2-$time1)/86400;