ftp、ssh、http、telnet、httpsjavascript
脚本执行时间,启用xdebug,使用WinCacheGrind分析。
数据库查询,MySQL使用EXPLAIN分析查询,启用slow query log记录慢查询。php
根据实际状况自由发挥html
ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它能够产生和运行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script做为本身的开发语言。
PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C、Java和Perl语言的语法,并结合本身的特性,使WEB开发者可以快速地写出动态生成页面。它支持目前绝大多数数据库。还有一点,PHP是彻底免费的,不用花钱,你能够从PHP官方站点自由下载。并且你能够不受限制地得到源码,甚至能够从中加进你本身须要的特点。
JSP是Sun公司推出的新一代站点开发语言,他彻底解决了目前ASP和PHP的一个通病-----脚本级执行(听说PHP4也已经在Zend的支持下,实现编译运行)。Sun公司借助本身在上的不凡造诣,将Java从Java应用程序和Java Applet以外,又有新的硕果,就是Java Server Page。JSP能够在Serverlet和JavaBean的支持下,完成功能强大的站点。
三者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成Servlet并由Java虚拟机解释执行,这种编译操做仅在对JSP页面的第一次请求时发生。
在ASP、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP、PHP、JSP页面须要附加的语言引擎分析和执行程序代码。程序代码的执行结果被从新嵌入到HTML代码中,而后一块儿发送给浏览器。
ASP、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不须要任何附加的软件支持。前端
要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器,使用代码优化工具等。java
咱们不要为一个简单的问题引起一场舌战,为工做选择适合的语言,不要为工做迁就语言。Perl十分适合用做命令行工具,虽然它在网页应用上也有不错的表现,可是它的真正实力在命令行上才能充分发挥。一样地,PHP虽然能够在控制台的环境中使用,可是它在网页应用上有更好的表现,PHP有大量专门为网页应用而设计的函数,Perl则彷佛以命令行为设计之本。mysql
这正是为什么我总是告诉别人选择适当的编程语言,若果你只用一种语言的话你怎么能回答这道问题?这道问题很简单,Perl所变量都是以@开头,例如@myArray,PHP则沿用做为所有变量的开头,例如myArray。
至于Perl表示散列表则用%,例如%myHash,PHP则没有分别,还是使用,例如myHash。jquery
使用Xdebug或者Advanced PHP Debuggerlinux
$dsn='mysql://username:password@localhost/test' $options=array( 'debug'=>2, 'portability'=>DB_PORTABILITY_ALL, ) DB::connect($dsn,$options)//其中options参数是可选的。
PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。它是一个PHP扩展及应用的一个代码仓库,PEAR处理数据库的模块是PEAR DB。web
题目有点含糊不清,SOAP,XML_RPC,Socket function,CURL均可以实现这些,若是是考虑PHP和Java的整合,PHP内置了这种机制(若是考PHP和.NET的整合,也能够这么回答)。
PHP提供了支持JAVA的类库文件,或者经过HTTP协议来交互数据。ajax
开放性题目,没有固定的算法,能够经过计算两个名字的笔画差来肯定缘分指数。
不作优化的状况下同样。
主要就是异步,主进程不会被一个异步任务阻塞,当进程发出命令以后,继续执行主任务,不用等待子任务执行完,这样效率更高。
数据库触发器和中断机制是数据库自动完成的,而ajax触发器是用户激发的。ajax把GUI和数据库异步优化。
$str=file_get_contents('doc.txt'); $str=ucwords($str); file_put_contents('doc.txt',$str);
addslashes
(1).建立新闻发布系统,表名为message有以下字段
字段名 | 描述 |
---|---|
id | 文章id |
title | 文章标题 |
content | 文章内容 |
category_id | 文章分类id |
hits | 点击量 |
建立表语句以下:
CREATE TABLE message( id iNT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, title VARCHAR(200)NOT NULL DEFAULT‘’, content TEXT, category_id INT UNSIGNED NOT NULL DEFAULT 0, hits INT UNSIGNED NOT NULL DEFAULT 0 )engine=InnoDB default charset=utf8
(2).一样上述新闻发布系统:表comment记录用户回复内容,字段以下
字段名 | 描述 |
---|---|
comment_id | 回复id |
id | 文章id,关联message表中的id |
comment_content | 回复内容 |
现经过查询数据库须要获得如下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
文章id文章标题点击量回复数量
用一个SQL语句完成上述查询,若是文章没有回复则回复数量显示为0
查询语句以下:
SELECT message.id AS id,title,hits,IF(comment.id is NULL,0,count(*))AS number FROM message LEFT JOIN comment ON message.id=comment.id GROUP BY message.id
(3).上述内容管理系统,表category保存分类信息,字段以下
字段名 | 描述 |
---|---|
category_id | int(4)not null auto_increment; |
categroy_name | varchar(40)not null; |
用户输入文章时,经过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
function categoryList(){ $result=mysql_query("select category_id,category_name from category")or die("Invalid query:".mysql_error()); echo"<select name='category'value=''>"; while($row=mysql_fetch_array($result)){ echo"<option value='".$row['category_id']."'>".$row['category_name']."</option>"; } echo"</select>"; }
文件操做部分:上述内容管理系统,用户提交内容后,系统生成静态HTML页面,写出实现的基本思路。
要生成静态HTML页面,须要使用输出缓冲output buffering及文件操做,首先使用ob_start()函数开启输出缓冲,在页面内容执行完成时,使用ob_get_contents()函数获取保存在输出缓冲区中的内容,而后使用file_put_contents()函数,生成静态HTML页面便可。
原理同样,都是利用标准输入输出流处理HTTP之类的文本协议,都是经过多进程模式处理多请求。不一样之处在于FastCGI的一个进程处理完一个请求以后重置状态并挂起,待下一个请求来时继续处理;而CGI的一个进程则处理完一个请求后退出,下一个请求来时再建立新进程。
Zend Optimizer能够加速PHP脚本的执行,提升PHP应用程序的执行速度。实现的原
理是对那些程序在被最终执行以前由运行编译器(Run-Time Compiler)产生的代码进行优化。
通常状况下,执行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。这意
味着网站的访问者能够更快的浏览网页,从而完成更多的事务,创造更好的客户满意度。
Zend Optimizer还能够给用Zend加密的文件解密。
sql注入攻击。
数据库操做安全,UPDATE、DELETE、INSERT的操做没有限制用户操做权限,这将是一件很危险的事情。
没有验证用户http请求的方式POST或者GET,GET请求被合法经过。
没有验证表单来源的惟一性,不能识别是合法的表单提交仍是黑客伪造的表单提交。
XSS攻击。
<?php session_start(); if(isset($_POST['name'])&&!empty($_POST['name'])){ if($_POST['check']==$_SESSION['check']){ echo'正常访问'; }else{ echo'外部访问'; } } $token=md5(uniqid(rand(),true)); $_SESSION['check']=$token; ?> <form method="post"action=""> <input type="text"name="name"> <input type="hidden"name="check"value="<?php echo$token;?>"> <input type="submit"> </form>
一是首先提升数据库的查询速度,好比增长索引,优化表的结构。
二是优化程序代码,若是查询比较多,能够尽可能用条件查询,减小查询语句,好比能用一条查询语句就不用两条。
三就是提升服务器的速度,优化服务器,把没必要要的进程关掉。
24.如下代码会产生什么问题,如何解决?
<?php $dir=$_POST['dir']; include("/usr/local/apache/htdoc/inc/$dir"); ?>
不安全,必须对用户的输入进行验证和过滤。
进程是具备必定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
线程是进程的一个实体是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
进程和线程的主要差异在于它们是不一样的操做系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的���同执行路径。线程有本身的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,因此多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行而且又要共享某些变量的并发操做,只能用线程,不能用进程。
Linux下经常使用软件,vim,emacs,tar,openoffice,putty,wget,links,ssh等。
<script>alert(111);</script>
),php端接收数据的时候,应该如何处理?能够对用户输入数据进行转义,如htmlspecialchars($_POST[‘title’]);
Memcahce是把全部的数据保存在内存当中,采用hash表的方式,每条数据由key和value组成,每一个key是独一无二的,当要访问某个值的时候先按照找到值,而后返回结果。
Memcahce采用LRU算法来逐渐把过时数据清除掉。
每一个公司的分工合做状况各不相同,通常会有策划,美工,前端开发,后台开发,维护,优化和推广等。
参考结构:
3台Web服务器,两台MySQL数据库服务器,采用Master/Slave同步的方式减轻数据库负载,Web服务器能够结合Memcache缓存来减小负载,同时三台Web服务器内容一致,
能够采用DNS轮询的方式来进行负载平衡。
自由发挥
Ajax是Asynchronous JavaScript and XML的缩写,是JavaScript、XML、CSS、DOM等多个技术的组合。
Ajax的工做原理是一个页面的指定位置能够加载另外一个页面全部的输出内容,这样就实现了一个静态页面也能获取到数据库中的返回数据信息了。因此Ajax技术实现了一个静态网页在不刷新整个页面的状况下与服务器通讯,减小了用户等待时间,同时也从而下降了网络流量,加强了客户体验的友好程度。
Ajax的核心技术是XMLHttpRequest,它是JavaScript中的一个对象。
Ajax的优势是:
(1).减轻了服务器端负担,将一部分之前由服务器负担的工做转移到客户端执行,利用客户端闲置的资源进行处理;
(2).在只局部刷新的状况下更新页面,增长了页面反应速度,使用户体验更友好。
Ajax的缺点是不利于SEO推广优化,由于搜索引擎没法直接访问到Ajax请求的内容。
题目意思有些模糊,题目本意多是将一个无符号的2进制字符串转成10进制数,如'10100010',应该获得10100010的十进制表示162。
<?php function bin2dec($bin){ $temp = strrev($bin); $result = 0; for ($i=0,$len = strlen($temp); $i < $len; $i++) { $result += pow(2,$i) * $temp[$i]; } return $result; } $a = '10100010'; echo bin2dec($a);//结果162 ?>
要求:
请不要使用qsort等系统内置排序函数
请使用你认为最快最优的方法实现该函数并使排序的性能最高。(嘀嗒团)
<?php // 快速排序实现 function array_sort(&$arr,$left,$right){ if ($left < $right) { $pivot = $arr[$left]; $low = $left; $high = $right; while ($low < $high) { while ($low < $high && $arr[$high]['score'] >= $pivot['score']) { $high--; } $arr[$low] = $arr[$high]; while ($low < $high && $arr[$low]['score'] <= $pivot['score']) { $low++; } } $arr[$low] = $pivot; array_sort($arr,$left,$low-1); array_sort($arr,$low+1,$right); } } $english = array( array('sid'=>1,'score'=>76), array('sid'=>2,'score'=>93), array('sid'=>3,'score'=>68.5), array('sid'=>4,'score'=>82.5), ); $left = 0; $right = count($english) - 1; array_sort($english,$left,$right); print_r($english); ?>
<?php $memcache_obj=new memcache $memcache_obj->connect(‘memcache_host,11211’); $memcache_obj->set(‘varKey’,’varValue’,0,____); ?>
time()+36002431
主要是数据库的设计系统的架构思想
分页算法的原理是limit offset,pagesize其中,pagesize是设定好的,而offset则要经过计算获得,不一样的页数对应的offset也不一样,设当前页为currentpage,则offset=(currentpage-1)*pagesize。
要求:
(1).和标记不得计算在长度以内。
(2).截取后的字符串,要保留原有标签,不过若是最后有一个标签没有闭合,则
去掉其开始标签。
示例:题中的字符串,要截取长度5,则返回的字符串应该为123ab,要截取长度8,
应返回123abc45。
<?php function cut($str,$len=null){ $last=0; $str_len=strlen($str); $result=''; $result_len=0; do{ $pattern='/<em>(.*?)<\/em>/i'; $num=preg_match($pattern,$str,$m,PREG_OFFSET_CAPTURE,$last); if($num){ $result.=substr($str,$last, $add_len=($m[0][1]-$last<$len-$result_len)?$m[0][1]-$last:$len-$result_len); $result_len+=$add_len; $last=$m[0][1]+strlen($m[0][0]); if($result_len<$len){ if($len-$result_len>=strlen($m[1][0])){ $result.=$m[0][0]; $result_len+=strlen($m[1][0]); }else{ $result.=substr($m[1][0],0,$len-$result_len); break; } } }else{ $result.=substr($str,$last,$len-$result_len); break; } }while($last<$str_len&&$result_len<$len); return$result; } ?>
private long contract_id;
private string contract_number;
private string customer_name;
替换为
private long contractId;
private string contractNumber;
private string customerName;(鑫众人云)
<?php $str = "private long contract_id; private string contract_number; private string customer_name;"; $pattern = '/_(\w)/em'; $result = preg_replace($pattern,"strtoupper('\\1')",$str); echo $result; ?>
流行的Ajax框架有jQuery,Prototype,Dojo,MooTools。
Ajax的工做原理是一个页面的指定位置能够加载另外一个页面全部的输出内容,这样就实现了一个静态页面也能获取到数据库中的返回数据信息了。因此Ajax技术实现了一个静态网页在不刷新整个页面的状况下与服务器通讯,减小了用户等待时间,同时也从而下降了网络流量,加强了客户体验的友好程度。
在使用Ajax时,涉及到数据传输,即将数据从服务器返回到客户端,服务器端和客户端分别使用不一样的脚步语言来处理数据,这就须要一种通用的数据格式,XML和json就是最经常使用的两种,而json比XML更简单。
进程,时间片
DOM,SAX,SimpleXML,其中前两种是通用的解析器,和具体语言无关,而SimpleXML则是PHP提供的解析器。
在PHP中可使用int或字符串来表示(php中没有日期时间类型),在MySQL中,可使用int,date,datetime,timestamp。
UTF-8编码是可变长编码,对于中文而言,一个字符使用3个字节来存储。
<?php $pattern = '/^1[358]\d{9}(,1[358]\d{9})*$/'; $subject = '13507224985,13833103237'; if (preg_match($pattern,$subject)) { echo "yes"; } ?>
用到的函数ignore_user_abort(),set_time_limit(0),sleep($interval),此代码只要运行一次后关闭浏览器便可。
<?php ignore_user_abort();//关掉浏览器,PHP脚本也能够继续执行. set_time_limit(0);//经过set_time_limit(0)可让程序无限制的执行下去 $interval=60*5;//每隔5分钟运行 do{ //这里是你要执行的代码 sleep($interval);//等待5分钟 }while(true); ?>