PHPのURLから$ _GET変数値なしでファイル名を取得したいですか?
私のURLはhttp://learner.com/learningphp.php?lid=1348
です
URLからlearningphp.php
のみを取得したいですか?
これを行う方法?助けてください。
Basenameを使用しましたが、URLにあるすべての変数値learntolearn.php?lid=1348
も提供します。
これは動作するはずです:
echo basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);
ただし、URLの悪意のある部分には注意してください。
次の手順は、ファイル、拡張子のあるファイル、拡張子のないファイルを取得する方法に関する総合的な情報を示しています。このテクニックは私にとって非常に役立ちます。それがあなたにも役立つことを願っています。
$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
Pekkaが言ったように parse_url()
を使用します。
<?php
$url = 'http://www.example.com/search.php?arg1=arg2';
$parts = parse_url($url);
$str = $parts['scheme'].'://'.$parts['Host'].$parts['path'];
echo $str;
?>
この例では、オプションのユーザー名とパスワードは出力されません!
parse_url
を使用してパスのみを取得し、basename
でファイル名のみを取得することをお勧めします。これにより、クエリパラメータも回避されます。
<?php
// url to inspect
$url = 'http://www.example.com/image.jpg?q=6574&t=987';
// parsed path
$path = parse_url($url, PHP_URL_PATH);
// extracted basename
echo basename($path);
?>
パスのみを取得するためにcomponent
parse_url
パラメーターを使用していることを除いて、 Sultan answer と多少似ています。
使用できます
$directoryURI =basename($_SERVER['SCRIPT_NAME']);
echo $directoryURI;
クエリ文字列なしでファイル名のみを取得する別の方法は、parse_urlおよび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'
次のコードを試してください:
PHP 5.4.0以降:
$filename = basename(parse_url('http://learner.com/learningphp.php?lid=1348')['path']);
PHPバージョン<5.4.0
$parsed = parse_url('http://learner.com/learningphp.php?lid=1348');
$filename = basename($parsed['path']);
$filename = pathinfo( parse_url( $url, PHP_URL_PATH ), PATHINFO_FILENAME );
Parse_urlを使用してURLからパスを抽出すると、pathinfoはパスからファイル名を返します
$url = "learner.com/learningphp.php?lid=1348";
$l = parse_url($url);
print_r(stristr($l['path'], "/"));
この機能を使用します。
function getScriptName()
{
$filename = baseName($_SERVER['REQUEST_URI']);
$ipos = strpos($filename, "?");
if ( !($ipos === false) ) $filename = substr($filename, 0, $ipos);
return $filename;
}