1

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

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

如何获得确定 /folder 以便我可以进一步引用 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

这就是为什么我需要知道文件夹名称。

现在有了答案,我有以下设置,只是你知道:

<?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}'/> " ;?>
4

6 回答 6

8

parse_url & explode

$path = parse_url($url, PHP_URL_PATH);

gives you

/folder/file

then you can explode() to separate the path values and check the first one to see if it is 'folder'

Example here: http://tehplayground.com/#7TIKAwp6J Example code:

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

outputs

folder

于 2012-08-17T19:41:21.243 回答
5
$script = $_SERVER['SCRIPT_NAME'];
echo dirname($script);
于 2012-08-17T19:44:29.143 回答
2

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

  1. 按目录分隔符展开。
  2. 然后像这样抓住最后一个元素:

    $var = getcwd();
    $var = explode('\\', $var); // your OS might use '/' instead
    $var = end($var);
    

我想这假设您没有使用某种使用路由的 MVC 框架。

我希望这会有所帮助!

于 2012-08-17T19:44:00.640 回答
1

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

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

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

于 2012-08-17T19:52:57.160 回答
0
$dir_list = explode('/', dirname($_SERVER['SCRIPT_FILENAME']));
$this_folder = $dir_list[count($dir_list)-1];
...
if ($this_folder) == "folderOne") echo "...."
...
于 2014-08-07T20:36:52.910 回答
-2
if(dirname('yoursite/folder')){
于 2012-08-17T19:41:10.697 回答