php怎么执行.sql文件
<?php
$hostname = 'localhost';
$dbname = 'test';
$username = 'root';
$pw = 'vivian';
$sqlfile = 'gb.sql';
$sql = file_get_contents($sqlfile);
echo($dbname);
echo($sql);
$conn = mysql_connect($hostname,$username,$pw) or die("无法连接数据库");
mysql_select_db($dbname,$conn) or die("无法连接到数据库");
mysql_query($sql) or die(mysql_error());
?>
代码:
-- -----------------------------------------------------------
--
-- Guest Book SQL File for installation
-- $id : gb.sql 1 2008-7-16 iwege $
--
-- -----------------------------------------------------------
DROP TABLE IF EXISTS gb_comments;
CREATE TABLE gb_comments(
cid mediumint(8) NOT NULL AUTO_INCREMENT,
username char(15) NOT NULL DEFAULT 'zero',
email char(40),
website varchar(75),
passdate datetime NOT NULL,
title varchar(75) NOT NULL,
message text NOT NULL,
PRIMARY KEY (cid)
)TYPE=MyISAM DEFAULT CHARSET=gbk;
sql直接在数据库执行的时候是没有问题的,但是如果是使用php文件执行的话,需要去掉第一行的drop 语句。
sql执行的时候test数据库是空的,并没有gb_comments.
请问这个问题是怎么形成的啊?
mysql_query 只能执行一段查询,查询的字串当中不能带分号。
如果要执行多个语句,需要将语句分开。
模板 template.html :
复制PHP内容到剪贴板
PHP代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><%{title}%></title>
</head>
<body>
<%{content}%>
</body>
</html>
生成 generator.php :
复制PHP内容到剪贴板
PHP代码:
<?php
/*
** html静态页面生成模块
*/
$title = "cShare.ORG首页";
$content = "红绿蓝(cShare.ORG),开源软件及自由软件社区.专注于开源软件及自由软件领域,竭力推进中国开源软件及自由软件发展.为软件开发者提供开发平台,为用户带来优秀软件...";
$template = file_get_contents("template.html"); //读取模板
$template = str_replace("<%{title}%>", $title, $template); //替换标记
$template = str_replace("<%{content}%>", $content, $template);
while(!file_exists("number.txt")) { //如不存在编号文件,则创建一个并写入初始编号0
file_put_contents("number.txt",0);
}
$html_number = file_get_contents("number.txt");
$html_number++;
file_put_contents("number.txt",$html_number);
$html_name = "{$html_number}.html";
file_put_contents($html_name, $template); //生成静态页面
?>
$sql="select * from my_note where note_url='4'";
$result=mysql_query($sql) or die('Error'.mysql_error());
$allrecord=mysql_num_rows($result);
$page=isset($_GET['page'])?$_GET['page']:1;
$pagesize=10;
$pagecount=($allrecord % $pagesize)?(int)($allrecord / $pagesize) +1:$allrecord / $pagesize;
$page=($page>$pagecount || $page<1)?$page=1:$page;
$start=$pagesize*($page-1);
$sqllist="select * from my_note where note_url='4' order by id desc limit $start,$pagesize ";
$resulte=mysql_query($sqllist) or die('Error '.mysql_error());
$num=mysql_num_rows($resulte);
if($num){
while($rs=mysql_fetch_object($resulte)){
if($rs->note_url=='1'){
echo("<li><img src='pic/point.jpg' /> <a href='".$rs->note_content."' class=note target='_blank'>".$rs->note_title."</a> [".$rs->note_date."] <img src='pic/new.gif' /></li>n");
}else{
echo("<li><img src='pic/point.jpg' /> <a href='show.php?id=".$rs->id."' class=note target='_blank'>".$rs->note_title."</a> [".$rs->note_date."]</li>n");
}
}
echo("<div id='page'><div class=li> 共".$pagecount."页 每页".$pagesize."条记录 共".$allrecord."个作品</div>");
for($i=$pagecount;$i>=1;$i--){
echo("<div class=li><a href=?page=".$i.">".($i)."</a></div>");
}
echo("</div>");
}else{
echo('No Infomation');
}
}
Ajax+PHP分页演示,带源码下载!!
今天看默默讲解分页,想想好像原创区很久没人发帖了,就顺便把默默的那个扩展开来,来个PHP+AJAX分页演示吧,好的,说来就来,首先我们依然是基本的AJAX开发框架:
复制内容到剪贴板
代码:
var http_request=false;
function send_request(url){//初始化,指定处理函数,发送请求的函数
http_request=false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest){//Mozilla浏览器
http_request=new XMLHttpRequest();
if(http_request.overrideMimeType){//设置MIME类别
http_request.overrideMimeType("text/xml");
}
}
else if(window.ActiveXObject){//IE浏览器
try{
http_request=new ActiveXObject("Msxml2.XMLHttp");
}catch(e){
try{
http_request=new ActiveXobject("Microsoft.XMLHttp");
}catch(e){}
}
}
if(!http_request){//异常,创建对象实例失败
window.alert("创建XMLHttp对象失败!");
return false;
}
http_request.onreadystatechange=processrequest;
//确定发送请求方式,URL,及是否同步执行下段代码
http_request.open("GET",url,true);
http_request.send(null);
}
//处理返回信息的函数
function processrequest(){
if(http_request.readyState==4){//判断对象状态
if(http_request.status==200){//信息已成功返回,开始处理信息
document.getElementById(reobj).innerHTML=http_request.responseText;
}
else{//页面不正常
alert("您所请求的页面不正常!");
}
}
}
function dopage(obj,url){
document.getElementById(obj).innerHTML="正在读取数据...";
send_request(url);
reobj=obj;
}
内容我放在一个div中显示,当翻页动作产生时,利用AJAX更新DIV达到翻页效果这是内容显示页面代码:
复制内容到剪贴板
代码:
<?php
header("Content-type: text/html;charset=GBK");//输出编码,避免中文乱码
?>
<html>
<head>
<title>ajax分页演示</title>
<script language="javascript" src="ajaxpg.js"></script>
</head>
<body>
<div id="result">
<?php
$page=isset($_GET['page'])?intval($_GET['page']):1; //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num=10; //每页显示10条数据
$db=mysql_connect("localhost","root","7529639"); //创建数据库连接
mysql_select_db("cr_download"); //选择要操作的数据库
/*
首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
总数据库除以每页显示的条数,有余进一。
也就是说10/3=3.3333=4 有余数就要进一。
*/
$result=mysql_query("select * from cr_userinfo");
$total=mysql_num_rows($result); //查询所有的数据
$url='test.php';//获取本页URL
//页码计算
$pagenum=ceil($total/$num); //获得总页数,也是最后一页
$page=min($pagenum,$page);//获得首页
$prepg=$page-1;//上一页
$nextpg=($page==$pagenum ? 0 : $page+1);//下一页
$offset=($page-1)*$num; //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。
//开始分页导航条代码:
$pagenav="显示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 条记录,共 $total 条记录 ";
//如果只有一页则跳出函数:
if($pagenum<=1) return false;
$pagenav.=" <a href=javascript:dopage('result','$url?page=1');>首页</a> ";
if($prepg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$prepg');>前页</a> "; else $pagenav.=" 前页 ";
if($nextpg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$nextpg');>后页</a> "; else $pagenav.=" 后页 ";
$pagenav.=" <a href=javascript:dopage('result','$url?page=$pagenum');>尾页</a> ";
$pagenav.="</select> 页,共 $pagenum 页";
//假如传入的页数参数大于总页数,则显示错误信息
If($page>$pagenum){
Echo "Error : Can Not Found The page ".$page;
Exit;
}
$info=mysql_query("select * from cr_userinfo limit $offset,$num"); //获取相应页数所需要显示的数据
While($it=mysql_fetch_array($info)){
Echo $it['username'];
echo "<br>";
} //显示数据
echo"<br>";
echo $pagenav;//输出分页导航
?>
</div>
</body>
</html>
翻页的关键就在于翻页时调用dopage()函数,接着利用回调信息来更新div中的内容。服务器端核心代码:
复制内容到剪贴板
代码:
<?php
header("Content-type: text/html;charset=GBK");//输出编码,避免中文乱码
$page=isset($_GET['page'])?intval($_GET['page']):1; //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num=10; //每页显示10条数据
$db=mysql_connect("localhost","root","7529639"); //创建数据库连接
mysql_select_db("cr_download"); //选择要操作的数据库
/*
首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
总数据库除以每页显示的条数,有余进一。
也就是说10/3=3.3333=4 有余数就要进一。
*/
$result=mysql_query("select * from cr_userinfo");
$total=mysql_num_rows($result); //查询所有的数据
$url='test.php';//获取本页URL
//页码计算
$pagenum=ceil($total/$num); //获得总页数,也是最后一页
$page=min($pagenum,$page);//获得首页
$prepg=$page-1;//上一页
$nextpg=($page==$pagenum ? 0 : $page+1);//下一页
$offset=($page-1)*$num; //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。
//开始分页导航条代码:
$pagenav="显示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 条记录,共 $total 条记录 ";
//如果只有一页则跳出函数:
if($pagenum<=1) return false;
$pagenav.=" <a href=javascript:dopage('result','$url?page=1');>首页</a> ";
if($prepg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$prepg');>前页</a> "; else $pagenav.=" 前页 ";
if($nextpg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$nextpg');>后页</a> "; else $pagenav.=" 后页 ";
$pagenav.=" <a href=javascript:dopage('result','$url?page=$pagenum');>尾页</a> ";
$pagenav.="</select> 页,共 $pagenum 页";
//假如传入的页数参数大于总页数,则显示错误信息
If($page>$pagenum){
Echo "Error : Can Not Found The page ".$page;
Exit;
}
$info=mysql_query("select * from cr_userinfo limit $offset,$num"); //获取相应页数所需要显示的数据
While($it=mysql_fetch_array($info)){
Echo $it['username'];
echo "<br>";
} //显示数据
echo"<br>";
echo $pagenav;//输出分页导航
?>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
//定义变量lastindex 表示为鼠标在查询结果上滑动所在位置,初始为-1
var lastindex=-1;
//定义变量flag 表示是否根据用户输入的关键字进行ajax查询,flase为允许查询 true为禁止查询
var flag=false;
//返回的查询结果生成的数组长度
var listlength=0;
function StringBuffer(){//定义对象StringBuffer
this.data=[];//创建属性,自定字符串
}
StringBuffer.prototype.append=function(){//声明StringBuffer的方法
this.data.push(arguments[0]);return this;//方法实现代码,赋值
}
StringBuffer.prototype.tostring=function(){//返回结果,或是说输出结果
return this.data.join("");
}
String.prototype.Trim = function(){//滤过空格
return this.replace(/(^\s*)|(\s*$)/g, "");
}
function hiddensearch(){//隐藏函数 主要是隐藏显示的提示下拉层和iframe,关于iframe下面在说其作用
$('rlist').style.display="none";
$('rFrame').style.display="none";
}
function showsearch(num){//显示函数 主要是显示的提示下拉层和iframe 参数num,根据该参数控制要显示提示层和iframe的高度
$('rlist').style.display='';
$('rFrame').style.display='';
//这里我定义每个返回查询结果的提示高度为20px,其中提示层总高度又加了num,是因为我在定义样式时使用了padding一个像素
$('rlist').style.height=num*20+num+'px';
//同样定位iframe的高度
$('rFrame').style.height=num*20+num+'px';
}
function getposition(element,offset){
//返回文本输入框的坐标函数,参数element为要返回的对象,参数offset可选为offsetLeft|offsetTop 分别表示为该对象距离左窗口上角的绝对位置
//利用这个函数可以定位我们要显示的提示层位置,使提示层正确的显示在文本输入框下面
var c=0;
while(element){
c+=element[offset];
element=element.offsetParent
}
return c;
}
/********************************DOM*************************************************/
function createlist(){//创建提示层
var listDiv=document.createElement("div");//createElement()方法可创建元素节点
listDiv.id="rlist"; //提示层id
listDiv.style.zIndex="2";//z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面,这个设置的是后便
listDiv.style.position="absolute"; //position 属性把元素放置到一个静态的、相对的、绝对的、或固定的位置中。这个和下边的那个是对应的,也就是说和下边的框架是对应的,位置设置为 absolute 的元素,可定位于相对于包含它的元素的指定坐标。此元素的位置可通过 "left"、"top"、"right" 以及 "bottom" 属性来规定。下边的出现也是因为选择了这个absolute数值
listDiv.style.border="solid 1px #000000";//设置边框样式
listDiv.style.backgroundColor="#FFFFFF";//设置背景颜色
listDiv.style.display="none"; //此元素不会被显示
listDiv.style.width=$('keyword').clientWidth+"px";//只读属性,声明了窗口的文档显示区的宽度
listDiv.style.left=getposition($('keyword'),'offsetLeft')+1.5+"px";//设置定位元素左外边距
listDiv.style.top =(getposition($('keyword'),'offsetTop')+$('keyword').clientHeight +3)+"px";//设置一个定位元素的上外边距边界与其包含块上边界之间的偏移。提示:如果 "position" 属性的值为 "static",那么设置 "top" 属性不会产生任何效果。
var listFrame=document.createElement("iframe");
listFrame.id="rFrame";//提示层id
listFrame.style.zIndex="1";//z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面,这个设置的是前边
listFrame.style.position="absolute";//和上边的那个设置是对应的
listFrame.style.border="0";//设置边框为0
listFrame.style.display="none"; //此元素不会被显示
listFrame.style.width=$('keyword').clientWidth+"px";//只读属性,声明了窗口的文档显示区的宽度
listFrame.style.left=getposition($('keyword'),'offsetLeft')+1+"px";//设置定位元素左外边距
listFrame.style.top =(getposition($('keyword'),'offsetTop')+$('keyword').clientHeight +3)+"px";//设置一个定位元素的上外边距边界与其包含块上边界之间的偏移。提示:如果 "position" 属性的值为 "static",那么设置 "top" 属性不会产生任何效果。
document.body.appendChild(listDiv); //向节点的子节点列表的末尾添加新的子节点。开头结尾相呼应。
document.body.appendChild(listFrame);//向节点的子节点列表的末尾添加新的子节点。开头结尾相呼应 。
}
function setstyle(element,classname){
switch (classname){
case 'm':
element.style.fontSize="12px";//设置字体大小
element.style.fontFamily="arial,sans-serif";//fontFamily 属性定义用于元素文本显示的字体。
element.style.backgroundColor="#3366cc";//背景
element.style.color="black";//颜色
element.style.width=$('keyword').clientWidth-2+"px";//设置只读属性的宽
element.style.height="20px";//设置高度
element.style.padding="1px 0px 0px 2px";//padding 属性设置元素的内边距。
if(element.displaySpan)element.displaySpan.style.color="white"
break;
case 'd':
element.style.fontSize="12px";
element.style.fontFamily="arial,sans-serif";
element.style.backgroundColor="white";
element.style.color="black";
element.style.width=$('keyword').clientWidth-2+"px";
element.style.height="20px";
element.style.padding="1px 0px 0px 2px";
if(element.displaySpan)element.displaySpan.style.color="green"
break;
case 't':
element.style.width="80%";
if(window.navigator.userAgent.toLowerCase().indexOf("firefox")!=-1)element.style.cssFloat="left";//判断头的
else element.style.styleFloat="left";
element.style.whiteSpace="nowrap";
element.style.overflow="hidden";
element.style.textOverflow="ellipsis";
element.style.fontSize="12px";
element.style.textAlign="left";
break;
case 'h':
element.style.width="20%";
if(window.navigator.userAgent.toLowerCase().indexOf("firefox")!=-1)element.style.cssFloat="right";
else element.style.styleFloat="right";
element.style.textAlign="right";
element.style.color="green";
break;
}
}
function focusitem(index){
if($('item'+lastindex)!=null)setstyle($('item'+lastindex),'d');
if($('item'+index)!=null){
setstyle($('item'+index), 'm');
lastindex=index;
}
else {
$("keyword").focus();
}
}
function searchclick(index){
$("keyword").value=$('title'+index).innerHTML;
flag=true;
}
function searchkeydown(e){
if($('rlist').innerHTML=='')return;
var keycode=(window.navigator.appName=="Microsoft Internet Explorer")?event.keyCode:e.which;
//down
if(keycode==40)
{
if(lastindex==-1||lastindex==listlength-1)
{
focusitem(0);
searchclick(0);
}
else{
focusitem(lastindex+1);
searchclick(lastindex+1);
}
}
if(keycode==38)
{
if(lastindex==-1)
{
focusitem(0);
searchclick(0);
}
else{
focusitem(lastindex-1);
searchclick(lastindex-1);
}
}
if(keycode==13)
{
focusitem(lastindex);
$("keyword").value=$('title'+lastindex).innerText;
}
if(keycode==46||keycode==8){flag=false;ajaxsearch($F('keyword').substring(0,$F('keyword').length-1).Trim());}
}
function showresult(xmlhttp)
{
var result=unescape(xmlhttp.responseText);
if(result!=''){
var resultstring=new StringBuffer();
var title=result.split('$')[0];
var hits=result.split('$')[1];
for(var i=0;i<title.split('|').length;i++)
{
resultstring.append('<div id="item'+i+'">');
resultstring.append('<span id=title'+i+'>');
resultstring.append(title.split('|')[i]);
resultstring.append('</span>');
resultstring.append('<span id=hits'+i+'>');
resultstring.append(hits.split('|')[i]);
resultstring.append('</span>');
resultstring.append('</div>');
}
$('rlist').innerHTML=resultstring.tostring();
for(var j=0;j<title.split('|').length;j++)
{
setstyle($('item'+j),'d');
$('item'+j).displaySpan=$('hits'+j);
setstyle($('title'+j),'t');
setstyle($('hits'+j),'h');
}
showsearch(title.split('|').length);
listlength=title.split('|').length;
lastindex=-1;
}
else hiddensearch();
}
function ajaxsearch(value)
{
new Ajax.Request('search.php',{method:"get",parameters:"action=do&keyword="+escape(value),onComplete:showresult});
}
function main()
{
$('keyword').className=$('keyword').className=='inputblue'?'inputfocus':'inputblue';
if($F('keyword').Trim()=='')hiddensearch();
else
{
if($F('keyword')!=''&&flag==false)ajaxsearch($F('keyword').Trim());
if(listlength!=0)$('keyword').onkeydown=searchkeydown;
else hiddensearch();
}
}
function oninit()
{
$('keyword').autocomplete="off";
$('keyword').onfocus=main;
$('keyword').onkeyup=main;
$('keyword').onblur=hiddensearch;
createlist();
}
Event.observe(window,'load',oninit);
</script>
相关文章
- 下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
Jupyter Notebook读取csv文件出现的问题及解决
这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06- 有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
- 这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 引发这个问题思考的是一段js程序的运行结果: 复制代码 代码如下: var i = 0; function a(){ for(i=0;i<20;i++){ } } function b(){ for(i=0;i<3;i++){ a(); } return i; } var Result = b(); 这段程序的运行结果是Re...2014-05-31
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25- 要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- 步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
- 今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
- 这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
- 本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
ant design中upload组件上传大文件,显示进度条进度的实例
这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29- 这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
- 举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
- 这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 通常php.ini的位置在:复制代码 代码如下:/etc目录下或/usr/local/lib目录下。如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法:1.新建php文件,写入如下代码复制代码 代码如下:<?phpe...2014-05-31