>백엔드 개발 >PHP 튜토리얼 > 请问上PHP生成静态页怎么返回路径

请问上PHP生成静态页怎么返回路径

WBOY
WBOY원래의
2016-06-13 13:22:101040검색

请教下PHP生成静态页如何返回路径
我自己做了个网站,现在需要加入静态化功能
模板文件


// 下面这个是数据库的查询标签
{mzrui:list table='product' order='uid desc'}

{$prod_id['name']}
 请问上PHP生成静态页怎么返回路径

{/mzrui}



{$v['typedir']} 这个是返回当前数据库栏目路径的

现在问题是静态化时路径不是全部静态化,有些比如评论,和某些需要经常更新的地方要用动态路径

我现在后台静态化解析模板时和动态解析模板都是用的同一个解析函数


$str = preg_replace('/\{mzrui:([\w]+)\s+([^}]+)\}/ie',"self::mzrui_tag('$1','$2')",$str); //匹配模板文件数据库查询语句 

public static function mzrui_tag($tab,$sql) //mysql 解析
{
global $mz_mysql,$prefix;
preg_match_all("/([a-z]+)\=[\']?([^\']+)[\']?/i", stripslashes($sql), $matches, PREG_SET_ORDER);
$check = array('type','rows','table','order','limit');
foreach($matches as $v)
{
if(in_array($v[1],$check))
{
$$v[1] = $v[2]; //变量的变量
}
}
switch($tab)
{

case 'channel': // 导航栏标签
{
$result = $mz_mysql->sql("select * from ".$prefix."kind where kind=0");
while($v = mysql_fetch_array($result))
{
if($v['html'] == 0) // 这里判断如果没有生成静态栏目时就返回动态链接 否则就取数据库内的静态文件夹地址
{
$v['typedir'] = 'index.php?ac=list&id='.$v['uid'];
$str[] = $v;
}
}
$GLOBALS['data']=$str;
}
break;
case 'list': //文章栏目标签
{
if(!empty($_GET['id'])) // 这里判断如果是动态链接的话取当前分类栏目的ID,但是这里如果是后台生成静态化页面的话,这里就有问题
{
$id = $mz_mysql->sql("select * from ".$prefix."kind where uid=".$_GET['id']);


}
}
break;
}
return ''; //返回数据
}

现在要解决就是路径的返回问题和栏目ID的问题,现在思路很混乱,忘有经验的指点一下

------解决方案--------------------
你是用的cms吗?如果全是自己写的不可能不会啊
静态化很简单,就是把输出的这个变量放到一个指定格式(html)的文件即可啊,
函数file_put_contents() 或者fwrite(),都可以,在放入的时候本身就需要指定路劲的
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.