WordPress как на ладони
wordpress jino

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 Удалим хэш (фрагмент, якорь) из 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

Код strip fragment from url: wp-includes/canonical.php WP 4.8.2

<?php
function strip_fragment_from_url( $url ) {
	$parsed_url = @parse_url( $url );
	if ( ! empty( $parsed_url['host'] ) ) {
		// This mirrors code in redirect_canonical(). It does not handle every case.
		$url = $parsed_url['scheme'] . '://' . $parsed_url['host'];
		if ( ! empty( $parsed_url['port'] ) ) {
			$url .= ':' . $parsed_url['port'];
		}
		$url .= $parsed_url['path'];
		if ( ! empty( $parsed_url['query'] ) ) {
			$url .= '?' . $parsed_url['query'];
		}
	}

	return $url;
}

Cвязанные функции

Из метки: URL (УРЛ Ссылка)

Еще из раздела: Форматирование

strip_fragment_from_url 2 комментария
  • СтасОК

    Прошу прощения за тупость, но у меня возник вопрос: куда именно нужно прописывать этот код? (в папку,файл или в шорткоде прописывать)??? unknw

    Ответить1.2 года назад #
    • Михаил cайт: kramerblog.net

      Кто ж знает, где тебе нужно это вывести? Код на php, так что не в шорткоде laugh

      Ответить1.2 года назад #

Здравствуйте, !

Ваш комментарий