1

たとえば、次のようなページを指すWebサイトがあります。

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

次のようなifステートメントをさらに引用できるように/folderを決定するにはどうすればよいですか?

if /folder then echo something

なぜこれが必要なのですか?

ページからどの画像を選択するかをFacebookに伝えようとしています。実際、私は非常に単純なページ構造を持っており、Facebookがとるべき画像は常に最初ですが、どういうわけかそれは時々別のものを選択します。他の画像の読み込みが速いからだと思います。そして、rel = "img_src"の古い方法は、必要な画像に追加するだけで機能するようには見えません。

もちろん、私はオープングラフプロトコルを使用して、Facebookにどの画像を使用するかを指示します。

私はcmsで作業していますが、画像のIDに応じて画像のパスを出力できます。2つの異なるフォルダにある異なる種類のページに対して2つの異なる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_urlexplode

$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] ""

出力

フォルダ

于 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 に答える