Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

My PHP files in my root directory INCLUDE header.php. Header.php INCLUDEs functions.php. I'm adding new pages in a subdirectory, so I added leading slashes to all my links in header.php: CSS, menu items and the subsequent INCLUDE to functions.php. The CSS and menu items work fine on this page in the subdirectory, but the functions don't work. There are no links in the functions that seem to need leading slashes.

Does the combination of include and leading slashes require modifying functions?

From a page in the root directory:

include('header.php');

From a page in the subdirectory:

include('/header.php');

From header.php:

include('/functions.php');

And the function that no longer works (called from pages in the root directory or subdirectory):

function show_date($array_name){
if (date("Y F j",strtotime($array_name["exhibit_open"])) == date("Y F j",strtotime($array_name["exhibit_close"]))){
    echo date("F j, Y",strtotime($array_name["exhibit_open"]));
}
elseif (date("Y",strtotime($array_name["exhibit_open"])) != date("Y",strtotime($array_name["exhibit_close"]))) {
    $first_date_format = "F j, Y";
    echo date($first_date_format,strtotime($array_name["exhibit_open"])). " - ". date("F j, Y",strtotime($array_name["exhibit_close"]));
} elseif (date("F",strtotime($array_name["exhibit_open"])) != date("F",strtotime($array_name["exhibit_close"]))){
    $first_date_format = "F j";
    echo date($first_date_format,strtotime($array_name["exhibit_open"])). " - ". date("F j, Y",strtotime($array_name["exhibit_close"]));
} else {
    $first_date_format = "j";
    echo date("F j",strtotime($array_name["exhibit_open"])). " - ". date($first_date_format,strtotime($array_name["exhibit_close"])). ", ". date("Y",strtotime($array_name["exhibit_close"]));
}

}

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
503 views
Welcome To Ask or Share your Answers For Others

1 Answer

Standard Paths 101:

/path/somefile - the leading / anchors this path structure at the ROOT of the file system, e.g. it's the equivalent of C:pathsomefile.

path/somefile - no leading /. The OS will use the programs "current working" directory as the basis of the path, so if you're in a shell that's in /home/foo, then somefile will be search for in /home/foo/path/somefile.

../somefile. the .. refers to the PARENT directory of the current working directory, so if you're in /home/foo, then ../somefile will be searched for as /home/somefile.

Note that you can have non-sensical paths like

/../../../../somefile. This will be acceptable, but is pointless, as you're both anchoring the path at the root of the file system, then trying to go ABOVE the root, which is not possible. This path is the operational equivalent of /somefile.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...