2012-06-05 9 views
1

У меня небольшие проблемы. Я хочу найти папку верхнего уровня и использовать ее как переменную.Извлечение имени папки URL из строки

Например.

Если у меня есть URL: http://www.someurl.com/foldername/hello.php

Я хотел бы посмотреть на URL и эхо «FOLDERNAME».

В настоящее время мой код разбивает вещи так, что это echos 'hello.php'.

Любая помощь была бы принята с благодарностью.

<?php 

// Get URL String // 
function curPageURL() { 
$pageURL = 'http'; 
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 
$pageURL .= "://"; 
if ($_SERVER["SERVER_PORT"] != "80") { 
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
} else { 
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
} 
return $pageURL; 
} 

// Split String and get folder// 

function curPageName() { 
return substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")); 
} 

// Pass along Results // 
$foldername = curPageName(); 

echo $foldername; 

?> 

ответ

1
  <?php 

      $a = "http://www.someurl.com/foldername/hello.php"; 

      $b = explode('/',$a); 

      //var_dump($b); 

     // i got this result array(5) { [0]=> string(5) "http:" [1]=> string(0) "" [2]=>     string(15) "www.someurl.com" [3]=> string(10) "foldername" [4]=> string(9) "hello.php" } 

// сейчас, чтобы получить или эхо имя_папки магазин значения из массива в переменной

  $value = $b['3']; 

     echo $value // will output foldername 
     ?> 

Я новичок слишком

+0

Я верю в то, что делаю простой, поэтому простой код – Rinzler

+0

Это отличный результат и то, что я искал. Единственная проблема, с которой я столкнулся, - это динамически подавать URL-адрес в $ a. например $ a = "$ url"; поэтому я уверен, что я могу что-то собрать вместе. – Brandrally

+0

ya любое значение url, которое вы получаете, может хранить его в $ a и получать ответ. не забудьте принять или перенести ответ, если он вам помог :) – Rinzler

1

Попробуйте с

$parse = parse_url('http://www.someurl.com/foldername/hello.php') 
echo dirname($parse['path']); 
// Output: /foldername 
// use trim() to strip of that leading slash 
1

Должны ли мы сделать так жестко?

я думаю, что это будет делать

function getFolderName($URL) 
{ 
     $pieces = explode("/",$URL); 
    // return $pieces[3];// -->do this if you need folder after domain 
    return $pieces[count($pieces)-2]; //-->do this if you need folder just before sourcefile 
} 
+0

Это вернет вторую последнюю, а не первую часть пути после имени хоста. Рассмотрим 'url http: // somedomain.com/foldername/otherfolder/hello.php', где предложенная вами функция будет поставлять' otherfolder' вместо 'foldername' – Havelock

+0

no, она вернет имя папки непосредственно перед исходным файлом , – Kris

+0

Он вернет путь перед исходным файлом, и я думаю, что это то, чего хотел исходный плакат. –

Смежные вопросы