给PHP疯子看的。(根据单表操作的SQL语句,自动生成PHP文件胚子)[原创]

fjfjfj 2002-08-03 05:18:59
根据单表操作的SQL语句,自动生成PHP文件胚子

根据单表查询的SQL语句,生成PHP文件(增删改、列表、详细等页面),以后编代码时就在这些php文件胚子的基础上继续编写,减少低级劳动。


下面两个文件,一个是客户端表单,一个是服务器处理页。
平时我写代码时觉得从数据库中取出字段,把代码贴来贴去的好烦,所以一气之下写了这个东西,非常不完善,但是重要的是思路。

平时要写一个单表查询,一般要实现6个功能:
List、detail、form、——列表页、详细页、新增页表单、
add、update、del——后台处理:添加、更新、删除


在第一页设置参数,第二页将代码生成在<textarea></textarea>内,并且同时在autophp目录下生成文件。

除了生成列表(分页)文件的那段程序有问题外,其它都正常,代码里的$DOCUMENT_ROOT 的值被我重新赋值了,因为我的php空间在51.net,php的根路径设置比较讨厌。


【在用PHP生成PHP文件方面,减少日常编码的低级劳动量方面,
您有什么好的想法和意见?请向我提出,谢谢啦。】



------------------------------------------------------------




<?
$DOCUMENT_ROOT = "/home/lgq51/public_html/adm_tools";
include($DOCUMENT_ROOT."/inc/conn.php");
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="css.css" type="text/css">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<?include($DOCUMENT_ROOT."/inc/head.php");?>
<form name="form1" method="post" action="autophp.php">
<table border="0" cellspacing="1" cellpadding="2" bgcolor="#99CCCC" width="98%">
<tr>
<td bgcolor="#F5EEFF" nowrap>table名:</td>
<td bgcolor="#FFFFFF">
<input type="text" name="autoTableName" size="20">
<br>
(例:tbl_user) </td>
</tr>
<tr>
<td bgcolor="#F5EEFF" nowrap>id名:</td>
<td bgcolor="#FFFFFF">
<input type="text" name="autoTableId" size="10">
<br>
(例:user_id) </td>
</tr>
<tr>
<td bgcolor="#F5EEFF" nowrap>列名:<br>
(逗号分隔)</td>
<td bgcolor="#FFFFFF">
<input type="text" name="autoTableItem" size="100">
<br>
(例:user_id,user_name,true_name,pwd,create_time,login_time,sex,company)
</td>
</tr>
<tr>
<td bgcolor="#F5EEFF" nowrap>SQL查询语句</td>
<td bgcolor="#FFFFFF">
<input type="text" name="autoTableSQL" size="100">
<br>
(例:select * from tbl_user) </td>
</tr>
<tr>
<td bgcolor="#F5EEFF" nowrap valign="top">PHP模块文件名:</td>
<td bgcolor="#FFFFFF">
<input type="text" name="XX">
<br>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<input type="checkbox" name="_list" checked value="1">
XX_list.php </td>
</tr>
<tr>
<td>
<input type="checkbox" name="_listpage" value="1">
XX_list.php (分页)</td>
</tr>
<tr>
<td>
<input type="checkbox" name="_form" value="1" checked>
XX_form.php </td>
</tr>
<tr>
<td>
<input type="checkbox" name="_detail" value="1" checked>
XX_detail.php </td>
</tr>
<tr>
<td>
<input type="checkbox" name="_add" value="1" checked>
XX_add.php </td>
</tr>
<tr>
<td>
<input type="checkbox" name="_update" value="1" checked>
XX_update.php </td>
</tr>
<tr>
<td>
<input type="checkbox" name="_del" value="1" checked>
XX_del.php </td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor="#F5EEFF" nowrap> </td>
<td bgcolor="#FFFFFF">
<input type="submit" name="Submit" value="生成页面">
<input type="reset" name="Submit2" value="Reset">
</td>
</tr>
</table>
</form>
<?include($DOCUMENT_ROOT."/inc/foot.php");?>
</body>
</html>


...全文
206 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
blues-star 2002-08-04
  • 打赏
  • 举报
回复
我不是PHP疯子,不过看完了,我要发疯了。:(
_Shakespeare 2002-08-03
  • 打赏
  • 举报
回复
不错,好象从前看过
结贴的时候楼主不要忘了提交FAQ
fjfjfj 2002-08-03
  • 打赏
  • 举报
回复
//-----------调用相关函数----------
if ($_list=="1"){
$Y = _list($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId);
echo "<a href='../autophp/".$XX."_list.php' target='_blank'>".$XX."_list.php"."</a>";
echo $textarea_begin;
echo $headStr;
echo $Y;
echo $footStr;
echo $textarea_end;

$content = $headStr . $Y . $footStr;
saveFile($XX."_list.php",$content);
}

if ($_listpage=="1"){
$Y = _listpage($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId);
echo "<a href='../autophp/".$XX."_listpage.php' target='_blank'>".$XX."_listpage.php"."</a>";
echo $textarea_begin;
echo $headStr;
echo $Y;
echo $footStr;
echo $textarea_end;

$content = $headStr . $Y . $footStr;
saveFile($XX."_listpage.php",$content);
}

if ($_form=="1"){
$Y = _form($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId);
echo "<a href='../autophp/".$XX."_form.php' target='_blank'>".$XX."_form.php"."</a>";
echo $XX."_form.php";
echo $textarea_begin;
echo $headStr;
echo $Y;
echo $footStr;
echo $textarea_end;

$content = $headStr . $Y . $footStr;
saveFile($XX."_form.php",$content);
}

if ($_detail=="1"){
$Y = _detail($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId);
echo "<a href='../autophp/".$XX."_detail.php' target='_blank'>".$XX."_detail.php"."</a>";
echo $XX."_detail.php";
echo $textarea_begin;
echo $headStr;
echo $Y;
echo $footStr;
echo $textarea_end;

$content = $headStr . $Y . $footStr;
saveFile($XX."_detail.php",$content);
}

if ($_add=="1"){
$Y = _add($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId);
echo "<a href='../autophp/".$XX."_add.php' target='_blank'>".$XX."_add.php"."</a>";
echo $textarea_begin;
echo $headStr;
echo $Y;
echo $footStr;
echo $textarea_end;

$content = $headStr . $Y . $footStr;
saveFile($XX."_add.php",$content);
}
if ($_update=="1"){
$Y = _update($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId);
echo "<a href='../autophp/".$XX."_update.php' target='_blank'>".$XX."_update.php"."</a>";
echo $XX."_update.php";
echo $textarea_begin;
echo $headStr;
echo $Y;
echo $footStr;
echo $textarea_end;

$content = $headStr . $Y . $footStr;
saveFile($XX."_update.php",$content);
}

if ($_del=="1"){
$Y = _del($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId);
echo "<a href='../autophp/".$XX."_del.php' target='_blank'>".$XX."_del.php"."</a>";
echo $textarea_begin;
echo $headStr;
echo $Y;
echo $footStr;
echo $textarea_end;

$content = $headStr . $Y . $footStr;
saveFile($XX."_del.php",$content);
}

//--php文本文件保存
function saveFile($filename,$content){
$autophpDir = "/home/lgq51/public_html/autophp/";
if(!is_dir($autophpDir)){mkdir($autophpDir, 0777);}
//$content=str_replace($imgdir,$newimgdir,$content);
$fp=fopen($autophpDir.$filename,"w");
fputs($fp,$content);
fclose($fp);
}
?>
fjfjfj 2002-08-03
  • 打赏
  • 举报
回复
//-------函数三
function _form($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId){
$str1 = "<form name=detail method=\"POST\" action=\"".$XX."_add.php\">\n";
$str1 .= " <table border=\"0\" cellpadding=\"2\" cellspacing=\"1\">\n";
for ($i=0;$i<sizeof($item_array);$i++){
if ($item_array[$i] != $autoTableId){
$str1 .= " <tr>\n";
$str1 .= " <td>".$item_array[$i]."</td>\n";
$str1 .= " <td><input type=text name=\"".$item_array[$i]."\"></td>\n";
$str1 .= " </tr>\n";
}
}
$str1 .= " <tr align=\"center\"> \n";
$str1 .= " <td colspan=\"2\"> \n";
$str1 .= " <input type=submit value=\"提 交\" name=\"submit\">\n";
$str1 .= " <input type=button value=\"返回\" onClick=\"location.href='".$XX."_list.php'\" name=\"button\"></td>\n";
$str1 .= " </tr>\n";
$str1 .= " </table>\n";
$str1 .= "</form>\n";
return $str1;
}

//-------函数四
function _detail($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId){
$str1 = "<form name=detail method=POST action=".$XX."_update.php>\n";
$str1 .= " <?\n";
$str1 .= " \$query = \"".$autoTableSQL." where ".$autoTableId."='\".\$".$autoTableId.".\"'\";\n";
$str1 .= " //echo \$query;\n";
$str1 .= " \$res=mysql_query(\$query);\n";
$str1 .= " \$num=mysql_num_rows(\$res);\n";
$str1 .= " if(\$num>0){\n";
for ($i=0;$i<sizeof($item_array);$i++){
$str1 .= " \$the_".$item_array[$i]." = mysql_result(\$res, 0, \"".$item_array[$i]."\");\n";

}
$str1 .= " }\n";
$str1 .= " ?>\n";
$str1 .= " <table border=\"0\" cellpadding=\"2\" cellspacing=\"1\">\n";
for ($i=0;$i<sizeof($item_array);$i++){
if ($item_array[$i] == $autoTableId){
$str1 .= " <input type=hidden name='".$autoTableId."' value='<?php echo \$the_".$autoTableId."?>'>\n";
}else{
$str1 .= " <tr>\n";
$str1 .= " <td>".$item_array[$i]."</td>\n";
$str1 .= " <td><input type=text name=\"".$item_array[$i]."\" value='<?php echo \$the_".$item_array[$i]."?>'></td>\n";
$str1 .= " </tr>\n";
}
}
$str1 .= " <tr align=center> \n";
$str1 .= " <td colspan=2> \n";
$str1 .= " <input type=submit value=\"提 交\" name=submit>\n";
$str1 .= " <input type=button value=\"返回\" onClick=\"location.href='".$XX."_list.php'\" name=\"button\"></td>\n";
$str1 .= " </tr>\n";
$str1 .= " </table>\n";
$str1 .= "</form>\n";
return $str1;
}

//-------函数五
function _add($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId){
$str1 = "<?\n";
$str1 .= " \$query = \"insert into ".$autoTableName." set \";\n";
for ($i=0;$i<sizeof($item_array);$i++){
if ($i==0){
$str1 .= " \$query .= \"".$item_array[$i]."='\".\$".$item_array[$i].".\"'\";\n";
}else{
$str1 .= " \$query .= \",".$item_array[$i]."='\".\$".$item_array[$i].".\"'\";\n";
}
}
$str1 .= " //echo \$query;\n";
$str1 .= "if (mysql_query(\$query)){\n";
$str1 .= " echo \"添加成功!\";\n";
$str1 .= " echo \"<br><a href='".$XX."_list.php'>[返回]</a>\";\n";
$str1 .= "}else{\n";
$str1 .= " echo \"添加失败!\";\n";
$str1 .= " echo \"<br><a href='javascript:history.back();'>[返回]</a>\";\n";
$str1 .= "}\n";
$str1 .= "?>\n";
return $str1;
}

//-------函数六
function _update($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId){
$flag==0;
$str1 = "<?\n";
$str1 .= " \$query = \" update ".$autoTableName." set \";\n";
for ($i=0;$i<sizeof($item_array);$i++){
if ($item_array[$i]!=$autoTableId){
if ($flag==0){
$str1 .= " \$query .= \" ".$item_array[$i]."='\".\$".$item_array[$i].".\"'\";\n";
$flag=1;
}else{
$str1 .= " \$query .= \" ,".$item_array[$i]."='\".\$".$item_array[$i].".\"'\";\n";
}

}
}
$str1 .= " \$query .= \" where ".$autoTableId."='\".\$".$autoTableId.".\"'\";\n";
$str1 .= " //echo \$query;\n";
$str1 .= "if (mysql_query(\$query)){\n";
$str1 .= " echo \"修改成功!\";\n";
$str1 .= " echo \"<br><a href='".$XX."_list.php'>[返回列表页]</a>\";\n";
$str1 .= " echo \"<br><a href='".$XX."_detail.php?".$autoTableId."=\$".$autoTableId."'>[返回详细页]</a>\";\n";
$str1 .= "}else{\n";
$str1 .= " echo \"修改失败!\";\n";
$str1 .= " echo \"<br><a href='javascript:history.back();'>[返回]</a>\";\n";
$str1 .= "}\n";
$str1 .= "?>\n";
return $str1;
}

//-------函数七
function _del($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId){
$str1 = "<?\n";
$str1 .= "\$query = \"delete from ".$autoTableName." where ".$autoTableId."='\$".$autoTableId."'\";\n";
$str1 .= "if (mysql_query(\$query)){\n";
$str1 .= " echo \"数据库记录删除完毕.\";\n";
$str1 .= "}else{\n";
$str1 .= " echo \"数据库删除失败\";\n";
$str1 .= "}\n";
$str1 .= "?>\n";
$str1 .="<input type=button value='关闭' onclick='window.close();'>";
$str1 .="<script>";
$str1 .="opener.location.reload();//刷新父窗口\n";
$str1 .="//window.close();";
$str1 .="</script>";



return $str1;
}





//*********************************************************
if ( strlen($autoTableItem)==0 || strlen($autoTableSQL)==0 || strlen($XX)==0 || strlen($autoTableName)==0 || strlen($autoTableId)==0 ){
echo "生成页面的参数不够!<br>";
echo "<a href='javascript:history.back();'>[返回]</a>";
exit;
}
//-----------接收参数----------
$item_array = split(",",$autoTableItem);//列名:(逗号分隔)
/*
for ($i=0;$i<sizeof($item_array);$i++){
echo $item_array[$i]."<br>";
}
*/

fjfjfj 2002-08-03
  • 打赏
  • 举报
回复

---------------------------------------------------------------------------【第二个文件】------------------------------------------------
<?
$DOCUMENT_ROOT = "/home/lgq51/public_html/adm_tools";
include($DOCUMENT_ROOT."/inc/conn.php");

$textarea_begin = "<body bgcolor=#124FA9>\n<textarea rows=27 cols=104>";
$textarea_end = "</textarea><br><br>\n\n\n\n\n\n\n\n";



//---------头文件------------
$headStr = "<?\$DOCUMENT_ROOT = \"/home/lgq51/public_html/autophp\";\n";
$headStr .= "include(\$DOCUMENT_ROOT.\"/inc/conn.php\");\n";
$headStr .= "?>\n";
$headStr .= "<html>\n";
$headStr .= "<head>\n";
$headStr .= "<title></title>\n";
$headStr .= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">\n";
$headStr .= "<link rel=\"stylesheet\" href=\"/lanyan/inc/ly.css\" type=\"text/css\">\n";
$headStr .= "<script language=javascript src=\"inc/reg.js\"></script>";
$headStr .= "</head>\n";
$headStr .= "<body text=\"#000000\" bgcolor=\"#FFFFFF\">\n";
$headStr .= "<?include(\$DOCUMENT_ROOT.\"/inc/head.php\");?>\n\n";

//---------尾文件------------
$footStr = "\n\n";
$footStr .= "<?include(\$DOCUMENT_ROOT.\"/inc/foot.php\");?>\n";
$footStr .= "</body>\n";
$footStr .= "</html>";




//-------函数一
function _list($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId){
$str1 = " <input type=button value=\"添加\" onClick=\"location.href='".$XX."_form.php'\" name=\"button\">\n";
$str1 .= "<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\" bgcolor=\"#003399\" align=\"center\" width=\"90%\">\n";
$str1 .= "<tr bgcolor=\"#E9F0F8\" align=\"center\">\n";
$str1 .= "<td>No.</td>\n";
for ($i=0;$i<sizeof($item_array);$i++){
$str1 .= "<td>".$item_array[$i]."</td>\n";
}
$str1 .= "<td>操作</td>\n";
$str1 .= "</tr>\n";
$str1 .= "<?";
$str1 .= "\$query = \"".$autoTableSQL."\";\n";
$str1 .= "//echo \$query;\n";
$str1 .= " \$res=mysql_query(\$query);\n";
$str1 .= " \$num=mysql_num_rows(\$res);\n";
$str1 .= " if(\$num>0){\n";
$str1 .= " \$i=0;\n";
$str1 .= " while(\$row=mysql_fetch_object(\$res)){\n";
$str1 .= " \$i++;\n";
for ($i=0;$i<sizeof($item_array);$i++){
$str1 .= " \$the_".$item_array[$i]."= \$row->".$item_array[$i].";\n";
}
$str1 .= " echo \"<tr bgcolor=#FFFFFF>\";\n";
$str1 .= " echo \"<td bgcolor=#E9F0F8>\$i</td>\";\n";
for ($i=0;$i<sizeof($item_array);$i++){
$str1 .= " echo \"<td>\$the_".$item_array[$i]."</td>\";\n";
}
$str1 .= " echo \"<td><a href='".$XX."_detail.php?".$autoTableId."=\$the_".$autoTableId."'>查看</a>\";\n";
$str1 .= " echo \" <a href=\\\"javascript:openDel('".$XX."_del.php?".$autoTableId."=\$the_".$autoTableId."');\\\">删除</a> \";\n";
$str1 .= " echo \"</td>\n</tr>\";\n";
$str1 .= " }\n";
$str1 .= " }\n";
$str1 .= "?>\n";
$str1 .= "</table>\n";
return $str1;
}


//-------函数二
function _listpage($item_array,$autoTableSQL,$XX,$autoTableName,$autoTableId){
$str1 = "<table cellspacing=0 cellpadding=2 width='100%' align=center border=1 bordercolor='#C0C78B'>\n";
$str1 .= "<form name='search_form' action='' method=post>\n";
$str1 .= "<input type='hidden' name='page' value='1'>\n";
$str1 .= "<tr bgcolor=#ffa620>\n";
$str1 .= " <td bgcolor='#E1E4C7'>\n";
$str1 .= " <table cellspacing=0 cellpadding=0 align=center border=0>\n";
$str1 .= " <tr>\n";
$str1 .= " <td>标题:</td>\n";
$str1 .= " <td><input type='text' name='title' size='15' maxlength='20' value='<?echo $title;?>'></td>\n";
$str1 .= " <td>关键字:</td>\n";
$str1 .= " <td><input type='text' name='keyword' size='10' maxlength='20' value='<?echo $keyword;?>'></td>\n";
$str1 .= " <td>\n";
$str1 .= " <input type='submit' name='Submit' value='查询'>\n";
$str1 .= " <input type='button' name='button' value='添加' onclick=\"location.href='".$XX."_detail.php'\">\n";
$str1 .= " </td>\n";
$str1 .= " </tr>\n";
$str1 .= " </table>\n";
$str1 .= " </td>\n";
$str1 .= " </tr>\n";
$str1 .= " </form>\n";
$str1 .= "</table>\n<br>\n";
$str1 .= "<?\n";
$str1 .= "\n";
$str1 .= "\n";
$str1 .= "//--设置查询条件--\n";
$str1 .= "\$wherestr=\"\"\n";
$str1 .= " if (\$keyword) \$wherestr.=\" and keyword like '%\$keyword%' \";\n";
$str1 .= "\n";
$str1 .= "//---------分页功能----------\n";
$str1 .= " \$pagesize=20;//----页面尺寸(分页用)\n";
$str1 .= "\n";
$str1 .= " //--查总帖子数\n";
$str1 .= " \$query0 = \"select count(*) as ID_all from ".$autoTableName." \$whereStr \";\n";
$str1 .= " \$res0=mysql_query(\$query0);\n";
$str1 .= " \$num0=mysql_num_rows(\$res0);\n";
$str1 .= " if(\$num0>0){\n";
$str1 .= " \$ID_all = mysql_result(\$res0, 0, \"ID_all\");\n";
$str1 .= " }else{\n";
$str1 .= " \$ID_all = 0;\n";
$str1 .= " }\n";
$str1 .= " //--计算总页数:pages\n";
$str1 .= " \$pages = ceil(\$ID_all/\$pagesize);\n";
$str1 .= "\n";
$str1 .= " //--计算本页开始ID序号\n";
$str1 .= " if (\$page<=0) \$page=1;\n";
$str1 .= " \$min_id = (\$page-1)*\$pagesize;\n";
$str1 .= "\n";
$str1 .= " \$query = \" ".$autoTableSQL." where 1=1 \";\n";
$str1 .= " \$query .= \$wherestr;\n";
$str1 .= " \$query .= \" order by ".$autoTableId." DESC\";\n";
$str1 .= " \$query .= \" limit \$min_id,\$pagesize\";\n";
$str1 .= "\n";
$str1 .= "\n";
$str1 .= "//---------列出查询结果----------\n";
$str1 .= "echo \"<table border=0 align='center' cellspacing='1' cellpadding='2' bgcolor='#9999CC' width='96%'>\";\n";
$str1 .= " //echo \$query;\n";
$str1 .= " \$res=mysql_query(\$query);\n";
$str1 .= " \$num=mysql_num_rows(\$res);\n";
$str1 .= " if(\$num>0){\n";
$str1 .= " echo \"<tr align=center bgcolor=#D9D9D9>\n\";\n";
$str1 .= "<td>No.</td>\n";
for ($i=0;$i<sizeof($item_array);$i++){
$str1 .= "<td>".$item_array[$i]."</td>\n";
}
$str1 .= "<td>操作</td>\n";
$str1 .= " echo \" <td nowrap>操作</td>\n\";\n";
$str1 .= " echo \"</tr>\n\";\n";
$str1 .= " \$i=0;\n";
$str1 .= " while(\$row=mysql_fetch_object(\$res)){\n";
$str1 .= " \$i++;\n";
for ($i=0;$i<sizeof($item_array);$i++){
$str1 .= " \$".$item_array[$i]."= \$row->".$item_array[$i].";\n";
}
$str1 .= " echo \"<tr bgcolor=#FFFFFF>\";\n";
$str1 .= " echo \"<td bgcolor=#E9F0F8>\$i</td>\";\n";
for ($i=0;$i<sizeof($item_array);$i++){
$str1 .= " echo \"<td>\$".$item_array[$i]."</td>\";\n";
}
$str1 .= " echo \"<td><a href='".$XX."_detail.php?".$autoTableId."=\$".$autoTableId."'>查看</a> \";\n";
$str1 .= " echo \"<a href='".$XX."_detail.php?".$autoTableId." =\".\$the_".$autoTableId." .\"'>修改</a> \";\n";
$str1 .= " echo \" <a href=\\\"javascript:openDel('".$XX."_update.php?".$autoTableId." =\".\$the_".$autoTableId." .\"&type=del');\\\">删除</a> \";\n";
$str1 .= " echo \"</td>\n</tr>\";\n";
$str1 .= " }\n";
$str1 .= " }else{\n";
$str1 .= " echo \"<tr><td colspan=8 align=center bgcolor='#f0f0f0' height=50 valign=top>没有符合条件的数据</td></tr>\";\n";
$str1 .= " }\n";
$str1 .= "echo \"</table>\";\n";
$str1 .= "\n";
$str1 .= "include \"pagebar.php\";\n";
$str1 .= "?>\n";
return $str1;
}

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧