it-swarm-id.com

Dapatkan hanya nama file dari url di php tanpa nilai variabel apa pun yang ada di url

Saya ingin mendapatkan nama file tanpa nilai variabel $ _GET dari url di php?

URL saya adalah http://learner.com/learningphp.php?lid=1348

Saya hanya ingin mengambil learningphp.php dari url?

Bagaimana cara melakukannya? Tolong bantu.

Saya menggunakan basename tetapi memberikan semua nilai variabel juga- learntolearn.php?lid=1348 yang ada di url.

33
sqlchild

Ini seharusnya bekerja:

echo basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);

Namun waspadalah terhadap bagian berbahaya di URL Anda.

47
str

Gunakan parse_url() seperti kata Pekka:

<?php
$url = 'http://www.example.com/search.php?arg1=arg2';

$parts = parse_url($url);

$str = $parts['scheme'].'://'.$parts['Host'].$parts['path'];

echo $str;
?>

http://codepad.org/NBBf4yTB

Dalam contoh ini, nama pengguna dan kata sandi opsional bukan keluaran!

18
ComFreek

Langkah-langkah berikut menunjukkan informasi total tentang cara mendapatkan file, file dengan ekstensi, file tanpa ekstensi. Teknik ini sangat membantu saya. Semoga bermanfaat juga bagi Anda.

  $url = 'https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_120x44dp.png';
        $file = file_get_contents($url); // to get file
        $name = basename($url); // to get file name
        $ext = pathinfo($url, PATHINFO_EXTENSION); // to get extension
        $name2 =pathinfo($url, PATHINFO_FILENAME); //file name without extension
15

Lebih baik menggunakan parse_url untuk mengambil hanya path, dan kemudian hanya mendapatkan nama file dengan basename. Dengan cara ini kami juga menghindari parameter kueri.

<?php
$url = 'http://www.example.com/image.jpg?q=6574&t=987'
$path = parse_url($url, PHP_URL_PATH);
echo basename($path);
?>

Agak mirip dengan Sultan jawab kecuali bahwa saya menggunakan parameter componentparse_url, untuk mendapatkan hanya path. 

8
foxtrot

Kamu bisa memakai,

$directoryURI =basename($_SERVER['SCRIPT_NAME']);

echo $directoryURI;
5
SwR

Cara lain untuk mendapatkan hanya nama file tanpa querystring adalah dengan menggunakan fungsi parse_url dan basename:

$parts = parse_url("http://example.com/foo/bar/baz/file.php?a=b&c=d");
$filename = basename($parts["path"]); // this will return 'file.php'
2

Coba kode berikut:

Untuk PHP 5.4.0 ke atas:

$filename = basename(parse_url('http://learner.com/learningphp.php?lid=1348')['path']);

Untuk PHP Versi <5.4.0

$parsed = parse_url('http://learner.com/learningphp.php?lid=1348');
$filename = basename($parsed['path']);
2
Sultan
$filename = pathinfo( parse_url( $url, PHP_URL_PATH ), PATHINFO_FILENAME ); 

Gunakan parse_url untuk mengekstrak path dari URL, lalu pathinfo mengembalikan nama file dari path

1
James
$url = "learner.com/learningphp.php?lid=1348";
$l = parse_url($url);
print_r(stristr($l['path'], "/"));
1
Mob

Gunakan fungsi ini:

function getScriptName()
{
    $filename = baseName($_SERVER['REQUEST_URI']);
    $ipos = strpos($filename, "?");
    if ( !($ipos === false) )   $filename = substr($filename, 0, $ipos);
    return $filename;
}