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);
}
}