0

私は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しかし、これが機能するためにphpに何を渡しているかは100%わかりません。

誰かが助けてくれることを願っています。

4

1 に答える 1

1

私はColdFusionについてほとんど何も知りませんが、あなたを正しく理解していれば、$_SERVER['REQUEST_URI']プロパティを調べることで同じ効果を得ることができます。

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

これにより、現在のリクエストに等しい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

于 2012-07-17T16:22:43.480 に答える