在php中定义路径目录以用于页面标题(从ColdFusion迁移)

时间:2012-07-17 16:17:11

标签: php html variables coldfusion

我知道如何在ColdFusion中执行此操作,我正在尝试使用相同的语法来根据需要定义根目录,子目录和文件名(目标是当客户端点击任何页面时,它的标题将由它所在的部分或目录)。

这是我为CF提供的代码(抱歉有很多):

<cfset REQUEST.directory_path = listDeleteAt(CGI.script_name, listLen(CGI.script_name, "/"), "/")>
<cfset REQUEST.directory_top = listFirst(CGI.script_name, "/")>
<cfset REQUEST.filename = listFirst(listLast(CGI.script_name, "/"), ".")>

<!--- Array of directory names --->
<cfset REQUEST.directory_array = ListToArray(REQUEST.directory_path,"/")>
<cfif ArrayLen(REQUEST.directory_array) GTE 1>
<cfset REQUEST.directory_parent = REQUEST.directory_array[ArrayLen(REQUEST.directory_array)]>
<cfelse>
    <cfset REQUEST.directory_parent = REQUEST.filename>
</cfif>

<cfset VARIABLES.filename = REQUEST.filename>
<cfset VARIABLES.directory = REQUEST.directory_parent>
<cfset VARIABLES.primarydir = REQUEST.directory_top>
<cfset VARIABLES.secondarydir = GetToken(REQUEST.directory_path,  2 ,  "/")>
<cfset VARIABLES.tertiarydir = GetToken(REQUEST.directory_path,  3 ,  "/")>
<cfset VARIABLES.quaternarydir = GetToken(REQUEST.directory_path,  4 ,  "/")>
<cfif VARIABLES.primarydir EQ "index.cfm">
    <cfset VARIABLES.primarydir = "index">
</cfif>

然后我有一个简单的switch语句来定义我的各个部分:

<cfswitch expression="#VARIABLES.PrimaryDir#">
<cfcase value="photography">
    <cfset VARIABLES.page_title_section = "Home">
    <cfset VARIABLES.PrimaryDir EQ 'photography'>
</cfcase>
<cfcase value="clients">
    <cfset VARIABLES.page_title_section = " Clients">
    <cfset VARIABLES.PrimaryDir EQ 'clients'>
    </cfcase>

等等

我认为我可以在PHP中创建switch语句,但如何定义上面的目录结构?我确实看过这里:http://php.net/manual/en/function.pathinfo.php但是我并不是100%确定我要传递给php的是什么工作。

希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:0)

我对ColdFusion几乎一无所知,但如果我理解正确,你可以通过检查$_SERVER['REQUEST_URI']属性获得相同的效果:

// Use substring to ignore first forward slash
$requestArray = explode('/', substr($_SERVER['REQUEST_URI'],1));

这将为您提供一个等于当前请求的单维数组。例如,如果用户请求以下URL:

http://www.domain.com/dir1/dir2/dir3/page.php

然后$requestArray将是:

Array( 0 => 'dir1', 1 => 'dir2', 2 => 'dir3', 3 => 'page.php')

如果用户请求主页(http://www.domain.com),则请求数组将为空。

有关更多信息,请查看$_SERVER

的手册条目