PHPでアンカータグのURLをきれいにする信頼できる方法はありますか?
入力:
出力:
$url = strstr($url, '#', true);
を使用して、より短い方法strtok
:
$url = strtok($url, "#");
URL をハッシュから分離する別の方法:
list ($url, $hash) = explode('#', $url, 2);
をまったく必要としない場合は、$hash
で省略できますlist
。
list ($url) = explode('#', $url);
PHP バージョン >= 5.4 では、以下を使用する必要さえありませんlist
。
$url = explode('#', $url)[0];
必須の正規表現ソリューション:
$url = preg_replace('/#.*/', '', $url);
Purlはきちんとした URL 操作ライブラリです。
$url = \Purl\Url::parse($url)->set('fragment', '')->getUrl();
parse_url()にはもう 1 つのオプションもあります。
$str = 'http://site.com/some/#anchor';
$arr = parse_url($str);
echo $arr['scheme'].'://'.$arr['host'].$arr['path'];
出力:
http://site.com/some/
別の方法
$url = 'http://site.com/some/#anchor';
echo str_replace('#'.parse_url($url,PHP_URL_FRAGMENT),'',$url);
parse_url() の使用:
function removeURLFragment($pstr_urlAddress = '') {
$larr_urlAddress = parse_url ( $pstr_urlAddress );
return $larr_urlAddress['scheme'].'://'.(isset($larr_urlAddress['user']) ? $larr_urlAddress['user'].':'.''.$larr_urlAddress['pass'].'@' : '').$larr_urlAddress['host'].(isset($larr_urlAddress['port']) ? ':'.$larr_urlAddress['port'] : '').$larr_urlAddress['path'].(isset($larr_urlAddress['query']) ? '?'.$larr_urlAddress['query'] : '');
}