php面试题7(1、unset变量是删除栈变量,并不删除堆变量)(2、php爬虫特别简单: 可以file_get_contents和直接fopen

一、总结

1、unset变量是删除栈变量,并不删除堆变量

2、php爬虫特别简单: 可以file_get_contents和直接fopen

第一种方法:
$str=file_get_contents(‘http://www.baidu.com’);
第二种方法:
$fp=fopen(‘http://www.baidu.com’,’r’);

二、php面试题7

谈谈你对MVC 的认识,介绍几种目前比较流行的MVC 框架?
MVC 是一种设计模式中:
M 是model 模型,业务逻辑层
V 是视图view 主要负责用户交互层
C 是控制器 是连接视图和模型的桥梁,就比如一个工厂,C 是老板M 是工厂,V 是显示给用户
的产品,mvc 很好的
Mvc 优点:
1) 低耦合性
2) 高重用性和可使用行
3) 快速的部署
4) 可维护性

html 表单中 GET 与POST 提交方法的区别?
$_GET 传参是请求HTTP 协议通过url 参数传递和接收,会在浏览器地址栏中看到
IE 的url 最大长度是2083 个字节,可以用于GET 传递数据的长度是2048 个字节,
$_POST 是实体数据传参,隐藏式的,可以通过表单提交大量信息

请简述SESSION 与COOKIE 的区别?

区别:
1,SESSION:存储在服务器端, cookie:存储在客户端
2,两者都可通过时间来设置时间长短
3,cookie 不安全,考虑安全性还是用 session
4,session 保存到服务器端,如果访问量过大,对服务器性能很影响,应使用 memcache 缓存
session
5,单个 COOKIE 在客户端限制是 3K,即存放的 cookie 不能超过 3K,SESSION 没有限制
#linux 下一般放置 session 在/tmp/session-*

求两个日期的差数,例如 2007-2-5 ~ 2007-3-6 的日期差数。
Strtotime(“2007-3-6”)-strtotime(“2007-2-5”)

写出如下程序的输出结果:
<?
$test='aaaaaa';
$abc=&$test;
unset($test);
echo$abc;
?> 
aaaaa

unset变量是删除栈变量,并不删除堆变量

在空表 News 中,字段 ID 为自增主键,批量插入 17 条记录之后,发现最后三条数据有误,
删除此三条记录后重启 Mysql 数据库,再重新插入三条记录,请问最后一条记录的 ID 值是多
少?

id 为 20

至少写出一种验证 139 开头的 11 位手机号码的正则表达式:
/^139\d{8}$/

请写一个函数,实现以下功能:
字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。

第一种:
<?php
function demo($string){
$arr=explode('_',$string);
foreach($arr as $key=>$val){
$arr[$key]=ucfirst($val);
}

return implode('',$arr);
}
?>

请写一个函数将 1234567890 转换成 1,234,567,890 每 3 位用逗号隔开的形式:

第一种方法:
<?php
$str='1234567890';
echo number_format($str);
?>
第二种方法:
<?php
$str='1234567890';
function demo($str){
$str=strrev($str);
$arr=str_split($str,3);
 $str=strrev(implode(',',$arr));
}
demo($str);
?>

有 A(id,sex,par,c1,c2),B(id,age,c1,c2)两张表,其中 A.id 与 B.id 关联,现在要求写一条
SQL 语句,将 B 中 age>50 的记录的 c1、c2 更新到 A 表中统一记录中的 c1、c2 字段中。
update A,B set A.c1=B.c1, A.c2=B.c2 where A.id=B.id and B.age>50

【Linux 知识】
如何实现每天 0 点钟重新启动服务器。
分 时 日 月 星期
Crontab -e
00 00 * * * /sbin/reboot
分 时 日 月 周

2.当前目录下有一个文件为 showme.sh , 如何修改文件,将其指定为使用 /bin/bash 运
行(5 分),如何修改其权限为所有用户可读写,所有用户可执行:
Vi showme.sh
#!/bin/bash #在最开头部分加上这句话就可以了
Chmod 777 showme.sh

当前目录下有一个文件为 showme.sh,如何修改其所有人为 root:
Chown root showme.sh

chown root chowme.sh
chown :root chowme.sh
chown root:root chowme.sh

【附加部分】
1.使用 thinkphp 在控制器(Action)中传递一个一维数组到视图(Tpl),并将数组循环
显示在前台页面,请简要的写出前后台的主要代码。
Action 中内容
public function index()
{
$index=array("a","b","c");
$this->assign("index",$index);
$this->display();
}
Tpl 中内容: //因为是一位数组不用 volist
<foreach name= "index" item= "val" >
<h1><{$val}></h1>
</foreach>

第一种方法:
$str=file_get_contents(‘http://www.baidu.com’);
第二种方法:
$fp=fopen(‘http://www.baidu.com’,’r’);
$str=’’;
While(!feof($fp)){
$str.=fread($fp,’1024’);
}

当涉及到转化编码时:

4 请用 php 将上题中读取出的网页内容的<title>标签的值解析出来:
preg_match('/<title>(.*)<\/title>/',$str,$arr);
/**
$arr 的结构
Array
(
[0] => <title>aaaaa<title>
[1] => 文件内容)
*/
echo $arr[1];

php面试题7(1、unset变量是删除栈变量,并不删除堆变量)(2、php爬虫特别简单: 可以file_get_contents和直接fopen)的更多相关文章

  1. 面试题21:包含min函数的栈

    题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素.要求函数min.push以及pop的时间复杂度都是O(1). 分析:google的一道面试题.我看到这道题目时,第一反应就是每次p ...

  2. mfc学习之路--如何删除通过控件新增的变量

    刚刚学校mfc的人都会遇到这样一个问题(比如我),在照做书做一个mfc程序,给控件新增变量时变量类型错了,但是变量名对了,然后想要加个正确的时候提示"已经存在该对象",然后就傻了, ...

  3. Java线程:线程栈模型与线程的变量

    Java线程:线程栈模型与线程的变量   要理解线程调度的原理,以及线程执行过程,必须理解线程栈模型. 线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶.线程栈的内容是随着程序的运 ...

  4. 【面试题021】包含min函数的栈

    [面试题021]包含min函数的栈  MinStack.cpp: 1234567891011121314151617181920212223242526272829303132333435363738 ...

  5. 使用typeid(变量或类型).name()来获取常量或变量的类型---gyy整理

    使用typeid(变量或类型).name()来获取常量或变量的类型 <typeinfo>  该头文件包含运行时类型识别(在执行时确定数据类型)的类 typeid的使用   typeid操作 ...

  6. ApiPost的环境变量的定义和使用「ApiPost环境变量」

    新版的ApiPost(Chrome拓展V2.0.8+/客户端V2.2.1+)已经支持环境变量的定义和使用. 本文主要介绍ApiPost环境变量的第一课:如何定义环境变量,并如何使用它. ApiPost ...

  7. 继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程

    继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的 ...

  8. 剑指offer——面试题30:包含min函数的栈

    #include"iostream" #include"stdio.h" using namespace std; ; ; template<typena ...

  9. Eclipse里选中一个变量后,这个类里的该变量不变色了?

    Eclipse里选一个变量后,这个类里的该变量不变色了. 1.使用“Alt+Shift+O”对该提示功能的开/关切换 2.可以在以下设置选中后的文本提示颜色  window--> Prefere ...

随机推荐

  1. js33--责任链模式

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  2. onvif开发实战2--总结框架搭建

    完成框架搭建后,编写自己的主函数起onvif服务 编写makefile objs = onvif.o onvif_func.o duration.o soapC.o soapServer.o stds ...

  3. c#的中英文混合字符串截取指定长度,startidx从0开始

    //c#的中英文混合字符串截取指定长度,startidx从0开始 by gisoracle@126.com public string getStrLenB(string str, int start ...

  4. vector转数组

    vector转数组 由于vector内部的数据是存放在连续的存储空间,vector转数组事实上只需要获取vector中第一个数据的地址和数据的长度即可.如果仅仅是传参,无需任何操作,直接传地址即可,如 ...

  5. C++面试必备,概念解析

    1.C和C++中struct有什么差别? 1> C++中的struct类似于class,有变量.有构造函数.虚函数等.有继承,多态等类的特征: 2> C中的struct仅仅有变量,不能有函 ...

  6. quartz中的corn表达式(转)

    Quartz的cron表达式 一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,可是你须要考虑你月 ...

  7. Activity Test1

    源代码下载(免积分) :下载 Acitivty測试的API的父类是InstrumentationTestCase.这个类可以获取Instrumentation.来操作Activity. 对于acti ...

  8. Web 组件是什么

    Web 组件是什么 一.总结 这篇下面的内容多看 1.组件化的目的:高内聚,低耦合,便于多人同时开发 2.各种前端框架(前端组件化)让写前端不要太简单: 3.组件编程最最最最简单实例: <lin ...

  9. pt模型

    top-down

  10. 【Android开发经验】我们要友好的告诉用户,程序要崩溃了

        转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992     尽管我们的程序在正式上线之前,都会经过严格的測试.从而保证程序的健壮性和良好的用户体验,可是 ...