面试(一)

1.如何获取一个网页中的内容 (如何获取http://www.baidu.com

     方法1: 用file_get_contents以get方式获取内容

     方法2:用file_get_contents函数,以post方式获取url

    方法3: 用fopen打开url, 以get方式获取内容

    方法4: 用fopen打开url, 以post方式获取内容

    方法5:用fsockopen函数打开url,以get方式获取完整的数据,包括header和body

   方法6:用fsockopen函数打开url,以POST方式获取完整的数据,包括header和body

    方法7:使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展

2.求2个日期的差数,例如2019-01-01~2019-05-20 

$date = (strtotime("2019-05-20")-strtotime("2019-01-01"))/3600/24;

3.使用curl获取一个第三方接口的数据(www.abc.com)并将数据存储至数据库的相应字段(字段包括商品名称,价格,规格,库存,销量)

<?php
///////////////////////////curl示例////////////////////

  $weather = curl_init(); 
  curl_setopt($weather,CURLOPT_URL," https://api.pc2801.com/cqssc/".time()); 
  curl_setopt($weather, CURLOPT_SSL_VERIFYPEER, false); //如果接口URL是https的,我们将其设为不验证,如果不是https的接口,这句可以不用加
  curl_setopt($weather,CURLOPT_RETURNTRANSFER,true);
  $data = curl_exec($weather); 
  curl_close($weather);          
  $data=json_decode($data,true);//将json格式转化为数组格式,方便使用

4.ajax请求获取list数据在前台遍历显示

$.ajax({
       dataType:"json",
       type:"POST",
       url:"../reply/findReply.action",
       data:{mid:mid},
       success:function(data){
          var arr=data.replies;
          for(var i=0;i<data.replies.length;i++){
               var name=arr[i].replier;
               var content=arr[i].reply;
               var time=arr[i].time;
               $('#reply_'+mid).prepend("<dl style='background-color:pink;'><dt>"+content+"</dt><dd>回复者:"+name+"</dd><dd>回复时间:"+time+"</dd>< >");
           }  
       },error:function(data){
           alert(系统错误);
       }
 });

5.实现一个函数,将字符串”hello_world”转换成”HelloWorld”(要实现该函数的通用性)

$data = str_replace(" ","",ucwords(str_replace(array("!","_"),array("l"," "),$str)));
//或者
$data = str_replace(" ","",ucwords(str_replace("_"," ",str_replace("!","l",$str))));

6.如何用程序实现获取一个文件夹中的所有文件和文件夹

//方法一
function my_dir($dir) {
    $files = array();
    if(@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
        while(($file = readdir($handle)) != = false) {
            if($file != ".." && $file != ".") { //排除根目录;
                if(is_dir($dir."/".$file)) { //如果是子文件夹,就进行递归
                    $files[$file] = my_dir($dir."/".$file);
                } else { //不然就将文件的名字存入数组;
                    $files[] = $file;
                }
 
            }
        }
        closedir($handle);
        return $files;
    }
}
echo "<pre>";
print_r(my_dir("."));
echo "</pre>";
方法二
/**
* 获取目录中所有文件的路径
* @param $dir
* @return array
*/
function my_scandir($dir)
{   
    if(is_dir($dir)){
        $files = array();
        $child_dirs = scandir($dir);
        for($child_dirs as $child_dir){
            //'.'和'..'是Linux系统中的当前目录和上一级目录,必须排除掉,  
            //否则会进入死循环,报segmentation falt 错误
            if($child_dir != '.' && $child_dir != '..'){
                if(is_dir($dir.'/'.$child_dir)){
                    $files[$child_dir] = my_scandir($dir.'/'.$child_dir);
                }else{
                    $files[] = $child_dir;
                }
            }
        }
        return $files;
    }else{
        return $dir;
    }
}

7.有一个商品标(字段包或商品名称,价格,规格,库存,销量),请使用yii的连贯操作方法实现对一个商品的增、删、改、查

//Yii2 增:
Yii::$app->db->createCommand()->insert('user', [  
    'name' => 'test',  
    'age' => 30,  
])->execute();
//删:
Yii::$app->db->createCommand()->delete('user', 'age = 30')->execute();
//改:
Yii::$app->db->createCommand()->update('user', ['age' => 40], 'name = test')->execute();
//查:
static::find()->where(['status'=>1])->all();

8.请使用php实现一个双向队列

class DoubleQeque{
    private $queue = array();
    public function addFirst($item){
        return array_unshift($this->queue, $item);
    }
    public function addLast($item){
        return array_push($this->queue, $item);
    }
    public function removeFirst(){
        return array_shift($this->queue);
    }
    public function removeLast(){
        return array_pop($this->queue);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值