开发者

Help on script, link to file from different sub-folder

I'd really like some help on this, a PERL-CGI script (complete working script is below).

How can I add the server's root folder (folder_f) to this:

开发者_如何转开发

~ s/_e.shtml/_f.shtml/

This bit of code searches all occurences of _e.shtml and replaces them with _f.shtml (it being in the same folder).

Yet, in between that, I would like to be able to add the server's root of "folder_f" folder in there, or done another way if it has to.

My script is called "change-language.pl" - which has a hyperlink to it in "file_e.shtml". When clicked, it will try to find the file "file_f.shtml".

For example of what I would like it to do:

~ s/_e.shtml/(FOLDER_F)_f.shtml/ (found in script below, but I added (FOLDER_F).

I tried: $calling_page =~ s/_e.shtml/'s/^/$.\f'/_f.shtml/;

but it did not work. It brings me to the same _e.shtml file.

I would really appreciate anyone's help on this one, as I can't seem to get it right, with what I know so far.

The complete script is below, which works but only if both language files (file_e.shtml and file_f.shtml) reside in the same folder. I need to be able to have the script work, so that it will find the file (file_f.shtml) but in a different sub-folder on the server's root called "FOLDER_F" folder.

In the part $calling_page =~ s/_e.shtml/_f.shtml/; of the script, is there a way to do this:

$calling_page =~ s/_e.shtml(FOLDER_F)/_f.shtml/; - FOLDER_F being in parentheses is where I would like to be able to have the script modified so that it goes to a sub-folder and get file_f.shtml in FOLDER_F sub-folder.

What I have so far follows WORKS, but only works if both _e.shtml and _f.shtml files are in the same folder:

#!/usr/bin/perl
#
#
# get the URL for the Web page that called this script
$calling_page = $ENV{'HTTP_REFERER'};


if($calling_page =~ /(.*)\#.*/) {

# # only take the first part up to the #
$calling_page = $1;}

# ignore any file that is not _e.shtml or _f.shtml and do nothing!

# is this an _e.shtml file?

if($calling_page =~ /_e\.shtml/) {
# replace the suffix

$calling_page =~ s/_e\.shtml/_f\.shtml/;

print "Location: $calling_page\n\n";

# then is this an _f.shtml file?

}


If I understood your description correctly, you want to insert a folder name into an URL, like this:

http://domain.com/foo/bar.html -> http://domain.com/foo/folder_f/bar.html

If this is the case, then you can do this using this regular expression:

$calling_page =~ s!/([^/]*)$!/folder_f/$1!;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜