第二十二套

1.用少量代码实现“Welcome to CCRF”字符串的反转?

header('content-type:text/html;charset=utf-8');
function rev($var) {
    $result = '';
    $length = mb_strlen($var);
    for ($i=$length-1; $i >= 0 ; $i--) { 
        $result .= mb_substr($var,$i,1,'utf-8');
    }
    return $result;
}
$str='Welcome to CCRF';
echo rev($str);

2.写出发帖数量最多的5~15个人名字的SQL语句,利用下表;Members(id,username,posts,pass,email);


select usernam from Members order by 发帖数量 desc limit 4,14

3.在PHP中error_reporting这个函数有什么作用?


错误等级
指定错误报告error_reporting(E_ERROR | E_WARNING | E_PARSE);

4.Js表单弹出对话框的函数是什么,并简要描述。

alert()警告消息框,即希望对用户显示的文本字符串.
prompt()提示消息框,提供了一个文本字段,用户可以在此字段输入一个答案来响应您的提示.
confirm确认消息框,向用户问一个”是”或”否”,并且用户可以选择单击”确定”按钮或单击”取消”按钮.

5.下面的程序会输入是否?


若要调用 函数中使用globle $num;

6.写出SQL语句的格式:插入,更新,删除。


insert into tablename() values()
update tablename set property=name
delete from tablename where id=val

7.表名user

Name        tel         content     date
张三      13810000001     大专毕业    2006-10-11
张三      13612312331     本科毕业    2006-10-15
张四      021-55665566        中专毕业    2006-10-15

a.有一新记录(小王 13254748547 高中毕业 2007-05-06) 请用SQL语句新增至表中

Insert into into user(name,tel,content,dete) values(‘小王’,13254748547,’高中毕业’,2007-05-06)

b.请用SQL语句把张三的时间更新成为当前的系统时间

Update user set date=now();

c.请写出删除名为张四的记录

Delete from user where name=”张四”

8.Isset();empty();有什么区别?对于不同的数据的判断的结果?


empty:如果 变量 是非空或非零的值,则 empty() 返回 FALSE。
换句话说,”“、0、”0”、NULL、FALSE、array()、var $var、未定义;
以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

isset:如果 变量 存在(非NULL)则返回 TRUE,否则返回 FALSE(包括未定义)。
变量值设置为:null,返回也是false;unset一个变量后,变量被取消了。
注意,isset对于NULL值变量,特殊处理。

9.写一个函数,能够便利指定目录的文件。

$dir = 'H:/study/WWW/phpMyAdmin/js';
function my_scandir($dir)
{
    $files = array();
    if( @$handle = opendir($dir) ) {
        while ( ($file = readdir($handle)) !== false ) {
            if ( $file != ".." && $file != "." ) {
                if ( is_dir($dir."/".$file) ) {
                    $files[$file] = my_scandir($dir."/".$file);
                }else {
                    $files[] = $file;
                }
            }
        }
        closedir($handle);
        return $files;
    }
}
$arr = my_scandir($dir);
echo '
';
var_dump($arr);
echo '
'
;

10.有下面语句:


编写代码,当鼠标划过文本框,自动选中文本框中的内容。


11.有一组数,29、30、40、16、57、69、42、54、46、31写程序排列这组数(要求:第一个是最大的,第二个是最小的,第三个是剩下中最大的,第四个是剩下最小的,四五个是剩下中最大的,第六个是剩下中最小的,一次向下排列。)

方法一

header('content-type:text/html;charset=utf-8');
$arr = array(29,30,40,16,57,69,42,54,46,31);
$count= count($arr);
for ($i=0; $i < ($count/2)-1 ; $i++) { 
    $array[] = max($arr);
    $array[] = min($arr);
    $x = array_search(max($arr),$arr);
    $y = array_search(min($arr),$arr);
    unset($arr[$x]);
    unset($arr[$y]);
}
var_dump($array);

方法二

header('content-type:text/html;charset=utf-8');
$arr = array(29,30,40,16,57,69,42,54,46,31);
function quick_sort($arr)
{
    //判断参数是否是一个数组
    if(!is_array($arr)){return false;}
    //递归出口:数组长度为1,直接返回数组
    $length=count($arr);
    if($length<=1){ return $arr;}
    //数组元素有多个,则定义两个空数组
    $left=$right=array();
    //使用for循环进行遍历,把第一个元素当做比较的对象
    for($i=1;$i<$length;$i++)
    {
        //判断当前元素的大小
        if($arr[$i]<$arr[0]){
            $left[]=$arr[$i];
        }else{
            $right[]=$arr[$i];
        }
    }
    //递归调用
    $left=quick_sort($left);
    $right=quick_sort($right);
    //将所有的结果合并
    return array_merge($left,array($arr[0]),$right);
}

$array = quick_sort($arr);
$count = count($array);
for ($i=0; $i <$count ; $i++) { 
    if($i%2==0){
        $array_a[] = array_pop($array);
    }else{
        $array_a[] = array_shift($array);
    }
}
var_dump($array_a);

方法三

   
   $a = array(28, 32, 43, 14, 53, 67, 42, 54, 46, 31);
   $b = array(28, 32, 43, 14, 53, 67, 42, 54, 46, 31);

   rsort($a);//对数组逆向排序
   sort($b);//对数组顺向排序

   $num = sizeof($a);//计算数组中的单元数目或对象中的属性个数

   for($i=0; $i<=$num/2-1; $i++) {
    $x[$i*2] = $a[$i];//把最小的放在第二位上
    $x[$i*2+1] = $b[$i];//把最大的放在第一位
   }

   print_r($x);
   //Array ( [0] => 67 [1] => 14 [2] => 54 [3] => 28 [4] => 53 [5] => 31 [6] => 46 [7] => 32 [8] => 43 [9] => 42 )

   ?>

12.写出匹配URL的正则表达式。

/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/

13.如何配置、使用和清除smarty缓存?

1、Smarty缓存的配置
$smarty->cache_dir = “/caches/”; //缓存目录
$smarty->caching = true; //开启缓存,为flase的时侯缓存无效
$smarty->cache_lifetime = 60; //缓存时间

2、Smarty缓存的使用和清除
$smarty->display(‘cache.tpl’, cache_id); //创建带ID的缓存
$smarty->clear_all_cache(); //清除所有缓存
$smarty->clear_cache(‘index.htm’); //清除index.tpl的缓存
$smarty->clear_cache(‘index.htm’,cache_id); //清除指定id的缓存

你可能感兴趣的:(PHP-面试题总集)