10

PHPでアンカータグのURLをきれいにする信頼できる方法はありますか?

入力:

http://site.com/some/#anchor

出力:

http://site.com/some/

4

4 に答える 4

25

strstr() の使用

$url = strstr($url, '#', true);

strtok() の使用

を使用して、より短い方法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];

preg_replace() の使用

必須の正規表現ソリューション:

$url = preg_replace('/#.*/', '', $url);

パールの使用

Purlはきちんとした URL 操作ライブラリです。

$url = \Purl\Url::parse($url)->set('fragment', '')->getUrl();
于 2013-05-27T12:22:43.613 に答える
3

parse_url()にはもう 1 つのオプションもあります。

$str = 'http://site.com/some/#anchor';
$arr = parse_url($str);
echo $arr['scheme'].'://'.$arr['host'].$arr['path'];

出力:

http://site.com/some/
于 2013-05-27T12:30:50.270 に答える
0

別の方法

$url = 'http://site.com/some/#anchor';
echo str_replace('#'.parse_url($url,PHP_URL_FRAGMENT),'',$url);
于 2013-05-27T12:28:56.227 に答える
0

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'] : '');
}
于 2017-08-09T01:13:03.073 に答える