eurobyte.ru - мощные сервера с Дата-центрами в Нидерландах и Москве. От 159 ₽/мес.

strip_fragment_from_url()WP 4.4.0

Удаляет фрагмент (якорь, хэш, #fragment) из URL. URL должен быть передан с протоколом.

Когда, нужно просто удалить фрагмент #fragment из строки (URL) без проверки есть протокол или нет, можно использовать один из таких кодов. К тому же, они раз в 5 быстрее

$link = 'page/sub-page#fragment';

// скорость на 50000 повторений
echo strip_fragment_from_url($link);         // 0.060 sec
echo  preg_replace('~#.*~', '', $link);      // 0.014 sec
echo  str_replace('#fragment', '', $link );  // 0.010 sec
echo  substr($link, 0, strpos($link, '#') ); // 0.007 sec

// каждая строка выведет на экран:
// page/sub-page
1 раз — 0.000035 сек (очень быстро) | 50000 раз — 0.20 сек (очень быстро)

Хуков нет.

Возвращает

Строку. URL без хэша.

Использование

strip_fragment_from_url( $url );
$url(строка) (обязательный)
URL, фрагмент из которого нужно удалить.

Примеры

1

#1 Удалим хэш (фрагмент, якорь) из URL.

echo strip_fragment_from_url ( 'http://wp-kama.ru/foo#fooooo' );
// вернет: http://wp-kama.ru/foo

echo strip_fragment_from_url ( 'http://wp-kama.ru/foo?foo=bar#fooooo' );
// вернет: http://wp-kama.ru/foo?foo=bar

echo strip_fragment_from_url ( '/foo#fooooo' );
// не обработает и вернет как было: /foo#fooooo

Список изменений

С версии 4.4.0 Введена.

Код strip_fragment_from_url() WP 6.7.1

function strip_fragment_from_url( $url ) {
	$parsed_url = wp_parse_url( $url );

	if ( ! empty( $parsed_url['host'] ) ) {
		$url = '';

		if ( ! empty( $parsed_url['scheme'] ) ) {
			$url = $parsed_url['scheme'] . ':';
		}

		$url .= '//' . $parsed_url['host'];

		if ( ! empty( $parsed_url['port'] ) ) {
			$url .= ':' . $parsed_url['port'];
		}

		if ( ! empty( $parsed_url['path'] ) ) {
			$url .= $parsed_url['path'];
		}

		if ( ! empty( $parsed_url['query'] ) ) {
			$url .= '?' . $parsed_url['query'];
		}
	}

	return $url;
}
2 комментария
    Войти