PHP从URL导出路径
使用.htaccess将所有地址重写为index.php php需要计算出要包含的文件。此时,它在“/”上爆炸并执行foreach以确定是哪个文件。这会导致错误 首先我们得到URI 如果有一个地址,例如PHP从URL导出路径,php,mysql,uri,Php,Mysql,Uri,使用.htaccess将所有地址重写为index.php php需要计算出要包含的文件。此时,它在“/”上爆炸并执行foreach以确定是哪个文件。这会导致错误 首先我们得到URI 如果有一个地址,例如localhost/next page,那么我们希望包含一个具有该名称的文件和扩展名PHPinclude('content/'.$post..PHP')并将$table的全局变量作为'PAGES'和$post作为'next-page' 如果有两个,那么第一个应该被视为$table,第二个应该被视为
localhost/next page
,那么我们希望包含一个具有该名称的文件和扩展名PHPinclude('content/'.$post..PHP')
并将$table
的全局变量作为'PAGES'
和$post
作为'next-page'
如果有两个,那么第一个应该被视为$table,第二个应该被视为$post,要包含的文件应该是include('content/single-'.$post..php')代码>
我们如何做到这一点?首先,您需要(在这种情况下,这可能是路径,尽管没有您的重写规则,我们不知道)。然后:
如果某些案例之间存在显著的相似性,您可以在做了一些使情况正常化的准备工作后,允许从一个案例到下一个案例之间出现故障,例如:
case 1:
array_unshift($parts, 'PAGES'); // now $parts will have two elements
// intentional fall-through
case 2:
// do whatever you need with $parts[0] and $parts[1]
break;
最后:如果您需要对$parts
中的项目进行大量处理,您可以使用以下构造为它们命名,以使代码更具可读性:
case 2:
list($table, $post) = $parts;
// carry on as before but now $table == $parts[0] and $post == $parts[1]
case 2:
list($table, $post) = $parts;
// carry on as before but now $table == $parts[0] and $post == $parts[1]