‘大公司’的PHP面试题
更新时间:2016年11月25日 16:08 点击:1576
http://topic.111cn.net/u/20071202/16/e53996de-4725-4dfa-bf14-c197afeed93c.html
<?php
class engage
{
public function getArray()
{
$arr1 = array (
''0'' => array (''fid'' => 1, ''tid'' => 1, ''name'' => ''Name1'' ),
''1'' => array (''fid'' => 1, ''tid'' => 2 , ''name'' => ''Name2'' ),
''2'' => array (''fid'' => 1, ''tid'' => 5 , ''name'' => ''Name3'' ),
''3'' => array (''fid'' => 1, ''tid'' => 7 , ''name'' => ''Name4'' ),
''4'' => array (''fid'' => 3, ''tid'' => 9, ''name'' => ''Name5'' )
);
$arr2 = array();
foreach ($arr1 as $key => $value)
{
$arr2[$value[''fid'']][] = array(''tid'' => $value[''tid''],''name'' => $value[''name'']);
}
return $arr2;
}
//print_r($arr2);
//$eString = ''open_door'';
public function getString($eString = null)
{
$eString = explode(''_'',$eString);
$eString = array_map("ucfirst",$eString);
$eString = implode($eString,'''');
return $eString;
}
/**
* 冒泡排序
* @return unknown
*/
public function getBubble()
{
$isOver = false;
$bubbleArray = array(10,2,36,14,10,25,23,85,99,45);
$bubbleResult = $bubbleArray;
do{
$bubbleArray = $bubbleResult;
$isOver = true;
foreach ($bubbleArray as $key => $value)
{
if ($value < $bubbleResult[$key-1])
{
$bubbleResult[$key]=$bubbleResult[$key-1];
$bubbleResult[$key-1]=$value;
$isOver = false;
}
}
}while (!$isOver);
return $bubbleResult;
}
}
$engage = new engage();
print_r($engage->getArray());
echo $engage->getString(''make_by_id'');
print_r($engage->getBubble());
?>
</pre>
<?php
/**
* 第二题正则替换实现.
*
*/
function getString($eString = null)
{
$eString = preg_replace(array("/(^[a-z]{1}|_[a-z]{1})/e",''/_/''),
array("strtoupper(''1'')",''''),
$eString);
return $eString;
}
?>
<
<?php
/**
* session处理器
* memcache 实现
* @author MoXie SysTem128@GMail.Com
*/
class SessionHandler extends Memcache
{
public $_sessionId; # session 编号
public $_sessionExpire; # session 过期时间
public $_sessionIsQuery;
public function __construct()
{
$this->_sessionExpire = 600;
$this->connect(''localhost'',11211);
}
/**
* 获取所有定位字段
*
*/
/**
* 读取 Session
*
* @return unknown
*/
public function getSession($snKey)
{
$returnInfo = $this->get($snKey);
$this->_sessionIsQuery = (bool)$returnInfo;
return $returnInfo;
}
/**
* 插入新的Session
*/
public function insertSession($snKey,$value)
{
return $this->set($snKey,$value,0,$this->_sessionExpire);
}
/**
* 更新session信息
*
* @return unknown
*/
public function updateSession($snKey,$value)
{
# 修改语句
return $this->set($snKey,$value,0,$this->_sessionExpire);
}
/**
* 删除Session
*
* @return unknown
*/
public function delSession($snKey)
{
return $this->delete($snKey,0);
}
/**
* 删除过期 Session
*
* @return unknown
*/
public function expireSession()
{
return true;
}
/**
* session 启动器
*
*/
public function on_session_start()
{
$this->_sessionSite = 1;
$this->_sessionId = session_id();
return true;
}
/**
* session 终止
*/
public function on_session_end()
{
return $this->expireSession();
}
/**
* 读取方法
*
* @param unknown_type $key
*/
public function on_session_read($key)
{
return $this->getSession($key);
}
/**
* 写入方法
*
* @param unknown_type $key
* @param unknown_type $value
*/
public function on_session_write($key,$value)
{
$this->getSession($key);
if ($this->_sessionIsQuery)
{
$this->updateSession($key,$value);
}else{
$this->insertSession($key,$value);
}
return true;
}
/**
* 销毁方法
*
* @param unknown_type $key
*/
public function on_session_destroy($key)
{
return $this->delSession();
}
/**
* 过期方法
*
* @param integer $maxLifeTime
*/
public function on_session_gc($maxLifeTime)
{
return $this->expireSession();
}
}
$sessionHandler = new SessionHandler();
session_set_save_handler(
array(&$sessionHandler,''on_session_start''),
array(&$sessionHandler,''on_session_end''),
array(&$sessionHandler,''on_session_read''),
array(&$sessionHandler,''on_session_write''),
array(&$sessionHandler,''on_session_destroy''),
array(&$sessionHandler,''on_session_gc'')
);
unregister_tick_function(''session_write_close'');
session_start();
//$_SESSION[''MoXie''] = ''Wonderfull!'';
//$_SESSION[''SysTem128''] = ''Wonderfull!'';
//session_unregister(''MoXie'');
print_r($_SESSION);
?>
本文转自:IBM developerWorks 中国
请点击此处查看全文
忙了一整天都没有成果,突然想起看一下appserv的配置文件,果然通过了。欢喜中。。。记下来先。
使用软件版本:
apache_2.2.6-win32-x86-openssl-0.9.8e.msi
mysql-5.0.45-win32.exe
php-5.2.5-Win32.zip
phpMyAdmin-2.11.2.2-all-languages.zip
1.安装apache到d:serverapache2.2
2.安装MySQL到d:servermysql5
3.解压php到d:serverphp
4.拷贝php文件夹下的libmysql.dll到c:windowssystem32目录下;
5.拷贝php文件夹下的php.ini-recommended到c:windows下并改名为php.ini
--------------------------------------------------------------------
6.打开apache的配置文件httpd.conf
a.在有许多LoadModule处添加一行:
LoadModule php5_module d:/Serverphpphp5apache2_2.dll
b.修改DocumentRoot "e:/www" 这是放置网页的根目录,自己想设置在什么地方就设置在什么地方。
c.# This should be changed to whatever you set DocumentRoot to.
<Directory "e:/www">
找到这里以后,把原来<Directory "">中的路径改成和b一样的路径。
d.在DirectoryIndex index.html处添加index.htm index.php
e.最后在<IfModule></IfModule>附近添加再添加一段
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php-source .phps
</IfModule>
------------------------------------------------------------------------
7.打开在c:windows下的php.ini文件
a.将一下语句前的;符号去掉
extension=php_dbase.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_sockets.dll
&nbs 随着adobe的FLEX和ROMTING的开源化又引起一场的RIA风波,我作为传统的WEB开发人员被其深深的吸引,作为web开发人员很关注flash如何和后台连接,在网上苦苦寻找终于发现了,在AS3下如何和后台通信,其实FLASH ROMTING 和JAVA DWR设计很相似都是通过中间来转化后台和前台对象,今天我就以一个金典的HELLOWORLD程序来展现这个框架。
首先到http://www.amfphp.org下
<?php
/**
* session处理器
* memcache 实现
* @author MoXie SysTem128@GMail.Com
*/
class SessionHandler extends Memcache
{
public $_sessionId; # session 编号
public $_sessionExpire; # session 过期时间
public $_sessionIsQuery;
public function __construct()
{
$this->_sessionExpire = 600;
$this->connect(''localhost'',11211);
}
/**
* 获取所有定位字段
*
*/
/**
* 读取 Session
*
* @return unknown
*/
public function getSession($snKey)
{
$returnInfo = $this->get($snKey);
$this->_sessionIsQuery = (bool)$returnInfo;
return $returnInfo;
}
/**
* 插入新的Session
*/
public function insertSession($snKey,$value)
{
return $this->set($snKey,$value,0,$this->_sessionExpire);
}
/**
* 更新session信息
*
* @return unknown
*/
public function updateSession($snKey,$value)
{
# 修改语句
return $this->set($snKey,$value,0,$this->_sessionExpire);
}
/**
* 删除Session
*
* @return unknown
*/
public function delSession($snKey)
{
return $this->delete($snKey,0);
}
/**
* 删除过期 Session
*
* @return unknown
*/
public function expireSession()
{
return true;
}
/**
* session 启动器
*
*/
public function on_session_start()
{
$this->_sessionSite = 1;
$this->_sessionId = session_id();
return true;
}
/**
* session 终止
*/
public function on_session_end()
{
return $this->expireSession();
}
/**
* 读取方法
*
* @param unknown_type $key
*/
public function on_session_read($key)
{
return $this->getSession($key);
}
/**
* 写入方法
*
* @param unknown_type $key
* @param unknown_type $value
*/
public function on_session_write($key,$value)
{
$this->getSession($key);
if ($this->_sessionIsQuery)
{
$this->updateSession($key,$value);
}else{
$this->insertSession($key,$value);
}
return true;
}
/**
* 销毁方法
*
* @param unknown_type $key
*/
public function on_session_destroy($key)
{
return $this->delSession();
}
/**
* 过期方法
*
* @param integer $maxLifeTime
*/
public function on_session_gc($maxLifeTime)
{
return $this->expireSession();
}
}
$sessionHandler = new SessionHandler();
session_set_save_handler(
array(&$sessionHandler,''on_session_start''),
array(&$sessionHandler,''on_session_end''),
array(&$sessionHandler,''on_session_read''),
array(&$sessionHandler,''on_session_write''),
array(&$sessionHandler,''on_session_destroy''),
array(&$sessionHandler,''on_session_gc'')
);
unregister_tick_function(''session_write_close'');
session_start();
//$_SESSION[''MoXie''] = ''Wonderfull!'';
//$_SESSION[''SysTem128''] = ''Wonderfull!'';
//session_unregister(''MoXie'');
print_r($_SESSION);
?>
了解如何使用 Asynchronous JavaScript™ + XML (Ajax) 和 PHP 在 Web 应用程序中建立聊天系统。您的客户不需要下载或安装任何专门的即时消息通讯软件,就能和您及其他客户讨论网站的内容。
Web 2.0 一词出现以来,开发人员都在说社区。不论您是否认为这有点夸大其辞,但让用户或读者能够方便地实时讨论页面主题或者销售的产品,这一想法还是很吸引人的。但是怎么办呢?能否在推销产品的页面中加入聊天,而不必让客户安装任何特殊的软件包括 Adobe Flash Player 呢?当然!实践证明,用免费的现成工具如 PHP、MySQL、动态 HTML (DHTML)、Ajax 和 Prototype.js 库就能完全做到。
不再罗嗦了,让我们立即开始吧。
本文转自:IBM developerWorks 中国
请点击此处查看全文
忙了一整天都没有成果,突然想起看一下appserv的配置文件,果然通过了。欢喜中。。。记下来先。
使用软件版本:
apache_2.2.6-win32-x86-openssl-0.9.8e.msi
mysql-5.0.45-win32.exe
php-5.2.5-Win32.zip
phpMyAdmin-2.11.2.2-all-languages.zip
1.安装apache到d:serverapache2.2
2.安装MySQL到d:servermysql5
3.解压php到d:serverphp
4.拷贝php文件夹下的libmysql.dll到c:windowssystem32目录下;
5.拷贝php文件夹下的php.ini-recommended到c:windows下并改名为php.ini
--------------------------------------------------------------------
6.打开apache的配置文件httpd.conf
a.在有许多LoadModule处添加一行:
LoadModule php5_module d:/Serverphpphp5apache2_2.dll
b.修改DocumentRoot "e:/www" 这是放置网页的根目录,自己想设置在什么地方就设置在什么地方。
c.# This should be changed to whatever you set DocumentRoot to.
<Directory "e:/www">
找到这里以后,把原来<Directory "">中的路径改成和b一样的路径。
d.在DirectoryIndex index.html处添加index.htm index.php
e.最后在<IfModule></IfModule>附近添加再添加一段
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php-source .phps
</IfModule>
------------------------------------------------------------------------
7.打开在c:windows下的php.ini文件
a.将一下语句前的;符号去掉
extension=php_dbase.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_sockets.dll
&nbs 随着adobe的FLEX和ROMTING的开源化又引起一场的RIA风波,我作为传统的WEB开发人员被其深深的吸引,作为web开发人员很关注flash如何和后台连接,在网上苦苦寻找终于发现了,在AS3下如何和后台通信,其实FLASH ROMTING 和JAVA DWR设计很相似都是通过中间来转化后台和前台对象,今天我就以一个金典的HELLOWORLD程序来展现这个框架。
首先到http://www.amfphp.org下
上一篇: php 生成静态页面
下一篇: php的字符串格式化
相关文章
- 这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
- PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
- index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04- 这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
- 这篇文章主要给大家介绍了7道关于JS this的面试题,来看看你能答对几个,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-05
- 这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
- 这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31- 这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
- 今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
- 这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
- 这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11
- 经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24
- 这篇文章主要介绍了thinkPHP中多维数组的遍历方法,以简单实例形式分析了thinkPHP中foreach语句的使用技巧,需要的朋友可以参考下...2016-01-12
- 这篇文章主要为大家详细介绍了php构造方法中析构方法在继承中的表现,感兴趣的小伙伴们可以参考一下...2016-04-15
- 这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
- 这篇文章主要介绍了jQuery+PHP+MySQL实现无限级联效果的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-02-21
- 这篇文章主要为大家详细介绍了php图片添加文字水印实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-03-17
- 这篇文章主要介绍了php有序列表或数组中删除指定的值的实现代码,删除给定的值之后,得到一个新的有序列表,长度-1,下面是具体的实现方法...2021-08-22