我希望创建一个基于URI的简单php脚本,它将调用某个函数。
我希望能够访问:
,而不是拥有一堆if语句的/ dev /视图/帖/
它会调用我在PHP脚本中创建的'posts'函数。
非常感谢任何帮助。
谢谢!
答案 0 :(得分:3)
您使用的是框架吗?他们为你做这件事。
您需要在apache中使用mod_rewrite才能执行此操作。
基本上你采取/ dev / view / posts 并重写它 /dev/view.php?page=posts
RewriteEngine On
RewriteRule ^/dev/view/posts/(.*)$ /dev/view?page=$1
在view.php中
switch($_REQUEST['page'])
{
case 'posts':
// call posts
echo posts();
break;
}
编辑进行此调用,无论什么功能被称为“页面”
您可能希望使用框架来执行此操作,因为存在安全隐患。但很简单,你可以这样做:
if (array_key_exists('page',$_REQUEST))
{
$f = $_REQUEST['page'];
if (is_callable($f))
{
call_user_func($f);
}
}
请注意,有更好的方法可以做到这一点!你应该使用框架!!!
答案 1 :(得分:1)
查看call_user_func
功能文档。
$functions['/dev/view/posts'] = 'function_a';
$functions['/dev/view/comments'] = 'function_b';
$functions['/dev/view/notes'] = 'function_c';
$uri = '/dev/view/comments';
call_user_func($functions[$uri]);
答案 2 :(得分:0)
您正在寻找的是Web服务器上的URL重写形式。例如,如果您使用Apache,则应查找mod_rewrite。您的规则可能如下所示的示例:
RewriteEngine On
RewriteRule ^/dev/view/posts/(.*)$ /posts.php?id=$1
但我假设你想要一个尾随的帖子ID或类似信息,以便你可以将它用于多个帖子的网址。