函数总结:

----------------------------------------------------------------------

数组:

1.数组转换为字符串:  implode(',',$arr);

  字符串转换为数组:  explode(',',$arr);

2.sort($aa);  只能对数组进行排序

3.count — 计算【数组】中的单元数目或对象中的属性个数

字符串

strlen — 获取字符串长度

$subject = '000a111b222';
$search = array('a', 'b');
$replace = array('ccc', 'ddd');
$output = str_replace($search, $replace, $subject);
echo $output;

$a="a'b'cd";
$b='qwe';
echo addslashes($a);

----------------------

strcasecmp  比较字符串大小

$var1 = "Hello";
$var2 = "hello";
if (strcasecmp($var1, $var2) == 0) {
    echo '$var1 is equal to $var2 in a case-insensitive string comparison';
}

----------------------------------------------------------------------

正则表达式

preg_match($pattern,$arr);

======================================================

笔试题

======================================================

<?php
header('Content-type:text/html;charset=utf-8');
1.定义一个常量 'NAME' ,值为'Linux';
define('NAME','Linux');
echo NAME;
// echo constant('NAME');

2.检查字符串的长度 和  3.检查数组的元素总数 分别用两个常用函数
$arr1 = 'abcdefg';
echo strlen($arr1);
$arr2 = array('a','b','c','d');
var_dump(count($arr2));

4.用PHP打印出前一天的时间 2016-9-10 22:21:12
echo date('Y-m-d h:i:s',time()-60*60*24);

5.将'$arr = array('james','tom','symfony')'
$arr = array('james','tom','symfony');
$a= implode(',',$arr);
var_dump($a);

6.$a='abcdef';截取$a 输出$a的第三个和第四个元素'cd'
$a='abcdef';
echo substr($a,'2','2');

7.最少的代码写一个求三个数字的最大值的函数,如传入三个数字3.5.8,返回最大值是8

function mymax($a,$b,$c){
  return $c>($a>$b?$a:$b)?$c:($a>$b?$a:$b);
}
echo mymax(20,50,5);

function my($a,$b,$c){
  $arr=$a.','.$b.','.$c;
  $str=explode(',',$arr);
  sort($str);
  $result=$str[count($str)-1];
  var_dump($result);
}
echo my(90,8,5);

8.写出函数创建长度为10 的数组,数组中的元素为递增的奇数,首项为1 ,
// 输出结果为array(Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 7 [4] => 9 [5] => 11 [6] => 13 [7] => 15 [8] => 17 [9] => 19 )

for($i=0;$i<10;$i++){
$aa[]=$i*2+1;
}
// var_dump($aa);
print_r($aa)

9.写一个函数来实现字符串大小排序。如:“154287”排序成“875421”

$arr = "154287";
$long=strlen($arr);
for($i=0;$i<6;$i++){
$str[] = $arr[$i];
}
sort($str);
$j=$long-1;
for($j;$j>=0;$j--){
$myarr[]=$str[$j];
}
$a=implode(',',$myarr);
echo $a;

10.用正则表达式写一个电子邮件aaa@xx.com

  $arr="1415551519@qq.com";

  $pattern="/^[a-zA-Z0-9]+@[a-z]+\.[a-z0-9]+$/";
  $a=preg_match($pattern,$arr);
  echo $a;

11.假设a.html和b.html在同一个文件夹下面,用javascript实现当打开a.html五秒钟后,自动跳转到b.html。

  function go2b(){
  window.location = “b.html”;
  window.close();
  }

  setTimeout( “go2b()”,5000 ); //5秒钟后自动执行go2b()

12.冒泡排序法的基本思想是:对待排序记录关键字从后往前(逆序)进行多遍扫描,当发现相邻两个关键字的次序与排序要求的规则不符时,就将这两个记录进行交换。这样,关键字较小的记录将逐渐从后面向前面移动,就象气泡在水中向上浮一样,所以该算法也称为气泡排序法。

// 冒泡排序
function mysort($arr){
  for($i=0;$i<count($arr);$i++){
    for($j=0;$j<count($arr)-$i-1;$j++){
      if($arr[$j]>$arr[$j+1]){
        $tem = $arr[$j];
        $arr[$j] = $arr[$j+1];
        $arr[$j+1] = $tem;
      }
    }
  }
return $arr;
}
$arr=array(3,1,5,20,2,88,60);
var_dump(mysort($arr));

13.把 John 新增到 users 阵列?

  $users[] = ‘john’; array_push($users,‘john’);

14.用PHP写出显示客户端IP与服务器IP的代码

  答:打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv(‘REMOTE_ADDR’);

  打印服务器IP:echo gethostbyname(“www.bolaiwu.com”)

15.如何修改SESSION的生存时间(1分).

  答:方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache

  方法2:$savePath = “./session_save_dir/”;

  $lifeTime = 小时 * 秒;

  session_save_path($savePath);

  session_set_cookie_params($lifeTime);

  session_start();

  方法3:setcookie() and session_set_cookie_params($lifeTime);

16.有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?($1分)

  答:方法1(对于PHP5及更高版本):

  $readcontents = fopen(“http://www.phpres.com/index.html”, “rb”);

  $contents = stream_get_contents($readcontents);

  fclose($readcontents);

  echo $contents;

  方法2:

  echo file_get_contents(“http://www.phpres.com/index.html”);

  

  echo file_get_contents("http://www.360doc.com/content/17/0821/21/46637018_681070212.shtml");

17.请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)

  答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略

  按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

  优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。

  按引用传递则不需要复制值,对于性能提高很有好处。

18.写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名

  例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php
  答案1:
  function getExt($url){
  $arr = parse_url($url);
  $file = basename($arr['path']);
  $ext = explode(“.”,$file);
  return $ext[1];
  }
  答案2:
  function getExt($url) {
  $url = basename($url);
  $pos1 = strpos($url,”.”);
  $pos2 = strpos($url,”?”);
  if(strstr($url,”?”)){
  return substr($url,$pos1 + 1,$pos2 – $pos1 – 1);
  } else {
  return substr($url,$pos1);
  }
  }

19.使用五种以上方式获取一个文件的扩展名

  要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,

  必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)

  function get_ext1($file_name){
    return strrchr($file_name, ‘.’);
  }

  function get_ext2($file_name){
    return substr($file_name, strrpos($file_name, ‘.’));
  }

  function get_ext3($file_name){
    return array_pop(explode(‘.’, $file_name));
  }

  function get_ext4($file_name){
    $p = pathinfo($file_name);
    return $p['extension'];
  }

  function get_ext5($file_name){
    return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), ‘.’)));
  }

20.

//快速排序(数组排序)
  function quicksort($array) {
  if (count($array) <= 1) return $array;
  $key = $array[0];
  $left_arr = array();
  $right_arr = array();
  for ($i=1; $i
  if ($array[$i] <= $key)
  $left_arr[] = $array[$i];
  else
  $right_arr[] = $array[$i];
  }
  $left_arr = quicksort($left_arr);
  $right_arr = quicksort($right_arr);
  return array_merge($left_arr, array($key), $right_arr);
  }

--------------------------------------------------------------

// $a="hello";
// $b=&$a;
// unset($b);
// // $b="word";
// echo $a;
// // echo $b;

最新文章

  1. Sql Server 中锁的概念
  2. hrbustoj 1073:病毒(并查集,入门题)
  3. Reporting Service报表项默认可见+号和-号的显示问题
  4. 有关SQLite的substr函数的笔记
  5. android_自定义布局
  6. 小蔡计算器 V4.0新版全新发布上线啦~欢迎大家下载使用哈~
  7. Python新手学习基础之初识python——与众不同2
  8. ObjectiveC 文件操作一
  9. JavaSE教程-04Java中循环语句for,while,do&#183;&#183;&#183;while-练习
  10. 【CSS3】块级元素与行内元素的区别
  11. jquery.$.ajax简单的使用
  12. JS中的&lt;a&gt;标签
  13. [daily][centos][nginx] 在centos7使用nginx启用对文件目录的http访问
  14. live555源码学习笔记之TaskScheduler
  15. .Net中使用ODP.net访问Oracle数据库
  16. Re:从零开始的Spring Session(一)
  17. MIT-6.828-JOS-lab3:User Environments
  18. Xcode 6 免证书真机调试
  19. CSS Grid布局入门
  20. solr联合多个字段进行检索(multivalued和copyfield的使用)

热门文章

  1. mysql 编写存储过程
  2. Spring3.x企业开发应用实战读书笔记 —— 第三章IoC容器概述
  3. 获取两个时间节点的月份列表&amp;&amp;每个月份的开始时间及结束时间
  4. 用 HAproxy 搭建 RabbitMQ 集群
  5. jenkins的搭建
  6. angular4.0单个标签不能同时使用ngFor和ngIf
  7. 机器学习笔记3-Tensorflow简介
  8. c# socket 粘包 其实。。。
  9. 【动态规划】洛谷P1006传纸条
  10. 微信【跳一跳】 opencv视觉识别 + 物理外挂