高手帮我修改一个函数

gnfzc 2005-11-29 11:59:42
function makepagelink2($link,$page,$pages) {

if (empty($pages)) return "<b>1</b>";
if ($page!=1) {
$pagelink .= " <a href=\"$link&pagenum=1\" title=\"第一页\">«</a> <a href=\"$link&pagenum=".($page-1)."\">上一页</a>";
}
if ($page>=6) {
$pagelink .= " <a href=\"$link&pagenum=".($page-5)."\">...</a>";
}
if ($page+4>=$pages) {
$pagex=$pages;
} else {
$pagex=$page+4;
}
for($i=$page-4;$i<=$pagex;$i++){
if ($i<=0) {
$i=1;
}
if($i==$page) {
$pagelink .= " <b>$i</b>";
} else {
$pagelink .= " <a href=\"$link&pagenum=$i\">$i</a>";
}
}
if (($pages-$page)>=5) {
$pagelink .= " <a href=\"$link&pagenum=".($page+5)."\">...</a>";
}
if ($page!=$pages) {
$pagelink .= " <a href=\"$link&pagenum=".($page+1)."\">下一页</a> <a href=\"$link&pagenum=".$pages."\" title=\"最后一页\">»</a>";
}

return $pagelink;

}


$pagelinks = makepagelink2("$phparticleurl/sort_$sortid",$pagenum,$totalpages);
eval("\$pagenav = \"" . gettemplate('pagenav') . "\";");

eval("\$articlelist = \"" . gettemplate('sorthome_articlelist') . "\";");
} else {
eval("\$articlelist = \"" . gettemplate('sorthome_articlelist_none') . "\";");
}


变量在网页显示:/sort.php?sortid=1&pagenum=1
希望能改成显示为:/sort_1_1
这种形式。谢谢!
...全文
164 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gnfzc 2005-12-01
  • 打赏
  • 举报
回复
不可思议!我居然成功了!

感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!感谢xuzuning(唠叨)老大!
xuzuning 2005-12-01
  • 打赏
  • 举报
回复
在你的函数中没有看到形如"sortid=1"的字样,想必是包含在$link里的
$link = '/sort.php?sortid=1';

你需要把$link调整为'/sort_1'
然后把形如
" <a href=\"$link&pagenum=".($page-5)."\">...</a>"
的改成
" <a href=\"{$link}_".($page-5).".html\">...</a>"

实际上sortid也应该是传入的
function makepagelink2($url, $sortid, $page, $pages)
" <a href=\"{$url}_{$sortid}_".($page-5).".html\">...</a>"
thisky 2005-11-30
  • 打赏
  • 举报
回复
需要使用apache的mod_rewrite
gnfzc 2005-11-30
  • 打赏
  • 举报
回复
看来我很幸运,一下子就碰上高手了,
一语中的!我就是使用apache的mod_rewrite,
我可以使用mod_rewrite!
/sort.php?sortid=1这些都改成sort_1.html
可是第二页以上是/sort.php?sortid=1&pagenum=2这样的,我不会改!
请帮帮我!
无限感激!
hsboy 2005-11-30
  • 打赏
  • 举报
回复
通过php,你最多能实现/sort.php/1_1这种形式,如果要实现/sort_1_1,你需要使用apache的mod_rewrite来搞定,换言之,如果你不能或没有权限修改服务器apache设置,是无法实现你的目标的
gnfzc 2005-11-30
  • 打赏
  • 举报
回复
谢谢Meteorlet(www.dictworld.com)
但我需要的不是rewriteRule正则,这个我已经写好了
通过/sort_1_1.html已经可以正常访问
问题是:网页上显示的还是/sort.php?sortid=1&pagenum=1
我想让他显示为/sort_1_1.html

我想修改的是网页的链接!
这需要修改一个函数
gu1dai 2005-11-30
  • 打赏
  • 举报
回复
Mark
原来rewriteRule支持正则阿。
Meteorlet 2005-11-30
  • 打赏
  • 举报
回复
RewriteRule /sort.php?sortid=([0-9]+)&pagenum=([0-9]+) /sort_$1_$2
gnfzc 2005-11-30
  • 打赏
  • 举报
回复
就是啊
mod_rewrite规则我已经写好了
通过/sort_1_1.html已经可以正常访问
问题是:网页上显示的还是/sort.php?sortid=1&pagenum=1
我想让他显示为/sort_1_1.html
看了一下,好像要修改makepagelink2函数和$pagelinks变量
我对php不熟,请大侠指教。感激!

21,891

社区成员

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

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