Tan*_*Tan 2 coldfusion coldfusion-9
我正在通过coldfusion代码并遇到以下信息.我不明白其中的一部分.我的问题如下:
码:
<cfif FINDNOCASE( "xyz.seta", "#CGI.SERVER_NAME#") GT 0 >
<cfset PublicPath = "abcxyz/NEW_abc/Public">
<cfset SessionPath = "abcxyz/NEW_abc/Session">
Run Code Online (Sandbox Code Playgroud)
我知道FINDNOCASE用于从指定的起始位置查找字符串中第一次出现子字符串.
Function Syntax: FindNoCase(substring, string [, start ])
Run Code Online (Sandbox Code Playgroud)
1)所以,在我的例子中,xyz.seta从"#CGI.SERVER_NAME#"开始搜索子字符串?我在这迷茫吗?
2)关于PublicPath和SessionPath定义的问题:
当我检查服务器时(使用VNC Viewer登录后),只有我可见的文件夹是Public和Session.我在哪里可以找到它之前的路径?在提出这样的问题之前,请澄清或告诉我是否需要学习更多内容.
谢谢
小智 6
你的第一个假设是正确的.在FINDNOCASE返回的子字符串的开始的索引.我认为CF索引是基于一个(不是基于0).因此,如果字符串"xyz.seta"存在于变量中#CGI.SERVERNAME#,则返回的值将始终大于零,并且CFIF将执行块的内容.
关于变量PublicPath和SessionPath.这些变量是页面变量,因为它们没有被任何其他范围指定(例如会话或应用程序)定义.它们仅在处理此页面时存在.如果它在您的Application.cfm中,它将在每次调用此Application.cfm文件时执行.变量的值被设置为相对于当前目录的路径.如果你想要它们绝对,可以在字符串文字的前面添加一个斜杠(例如"/abcxyz/NEW_abc/Public").这将使它们成为Web服务器文档目录的绝对路径.Web服务器路径因OS而异.
我不知道你的第二个问题甚至是问什么,更不用说答案,但我可以回答第一个问题.
你误读了(相当清楚,我认为)的文档findNoCase().
功能语法:
FindNoCase(substring, string [, start ])
码:
FINDNOCASE( "xyz.seta", "#CGI.SERVER_NAME#")
那xyz.seta就是substring,而且CGI.SERVER_NAME是字符串.并且start未指定可选属性,因此隐含为1,即:字符串的开头.
所以代码xyz.seta在值的范围内寻找CGI.SERVER_NAME(并将返回找到它的位置,如果没有找到则返回零.