PHP:如何只获取网站的当前文件夹

时间:2012-08-17 19:37:09

标签: php

例如,我有一个指向这样一个页面的网站:

http://www.mysite.com/folder/file

如何获得确定/文件夹,以便我可以进一步引用if语句,如

if /folder then echo something

为什么我需要这个?

我想告诉facebook从页面中选择哪个图像。实际上我有一个非常简单的页面结构,Facebook应该首先采取的图像,但不知何故,它确实会不时选择另一个。我猜是因为其他图像的加载速度更快。而对rel =“img_src”的旧方法似乎不再起作用,因为我可以将它添加到想要的图像中。

当然,我使用开放式图形协议告诉facebook它应该使用哪个图像。

我正在使用cms,我可以根据图像的id输出图像的路径。我有两个不同的id用于生活在两个不同文件夹中的不同类型的页面。

这导致:

if index --> echo meta og for index img
else if /folderone (with id1) --> echo meta og for id1
else if /foldertwo (with id2) --> echo meta og for id2

这就是为什么我需要知道foldername。

现在回答我有以下设置,只知道你知道:

<?php $folder = dirname($_SERVER['SCRIPT_NAME']); ?>

<?php if (dirname($_SERVER['SCRIPT_NAME']) == "/") echo "<meta property='og:image' content='http://www.mysite.com/img/img.jpg'/>" ;?>
<?php if (dirname($_SERVER['SCRIPT_NAME']) == "/folderOne") echo "<meta property='og:image' content='http://www.mysite.com/img/{$img_id1}'/> " ;?>
<?php if (dirname($_SERVER['SCRIPT_NAME']) == "/folderTwo") echo "<meta property='og:image' content='http://www.mysite.com/img/{$img_id2}'/> " ;?>

6 个答案:

答案 0 :(得分:8)

parse_url&amp; explode

$path = parse_url($url, PHP_URL_PATH);

给你

/folder/file

然后你可以 explode()来分隔路径值并检查第一个路径值以查看它是否是“文件夹”

示例:http://tehplayground.com/#7TIKAwp6J 示例代码:

$url = "http://www.mysite.com/folder/file";
$path = parse_url($url, PHP_URL_PATH);
$arr = explode("/",$path);
echo $arr[1]; // leading slash makes [0] ""

输出

  

文件夹

答案 1 :(得分:5)

$script = $_SERVER['SCRIPT_NAME'];
echo dirname($script);

答案 2 :(得分:2)

可能使用“获取当前工作目录”功能getcwd()

  1. 按目录分隔符分解。
  2. 然后抓住最后一个元素:

    $var = getcwd();
    $var = explode('\\', $var); // your OS might use '/' instead
    $var = end($var);
    
  3. 我认为这假设您没有使用某种使用路由的MVC框架。

    我希望有所帮助!

答案 3 :(得分:1)

我认为这比爆炸字符串更好:

function getCurrentDirectory(){
    $curDirPath = getcwd();
    return substr($curDirPath, strrpos($curDirPath, '/') + 1);
}

getcwd()为您提供当前目录的路径,然后您可以在文件路径中最后一次出现/后立即截断它。

答案 4 :(得分:0)

$dir_list = explode('/', dirname($_SERVER['SCRIPT_FILENAME']));
$this_folder = $dir_list[count($dir_list)-1];
...
if ($this_folder) == "folderOne") echo "...."
...

答案 5 :(得分:-2)

if(dirname('yoursite/folder')){