Всем привет в этой небольшой статье мы с вами познакомимся с функциями parse_url() и parse_str() которые позволяют разбивать url строку на составляющие элементы. Под составляющими элементами я понимаю (протокол, хост, порт, параметры и т.п)
Допустим у нас есть следующая url строка:
$url_str = "https://webfanat.com:8083/article_id?id=136#136";
И мы хотим разбить ее на фрагменты. Для этого достаточно воспользоваться функцией parse_url().
var_dump(parse_url($url_str));
В данную функцию мы передаем нашу url строку и на выходе получаем ассоциативный массив содержащий следующие пары свойств и значений.
scheme => https
host => webfanat.com
port => 8083
path=> /article_id
query=> id=136
fragment=>136
Как видите вся наша url строка была разбита на составные ее части. Теперь нам достаточно просто обратится к любому ключу массива для получения его содержимого. К примеру мы хотим получить номер порта.
var_dump(parse_url($url_str)['port']);
В результате нам вернется номер порта. Если нам требуется получить одно или несколько значений фрагментов url строки мы можем в функцию parse_url() передать второй аргумент в виде надстройки.
Пример, получение параметров адресной строки.
var_dump(parse_url($url_str, PHP_URL_QUERY));
Как видите здесь для получения параметров адресной строки мы воспользовались константой PHP_URL_QUERY. Остальные фрагменты url строки мы можем получать точно также по аналогии(PHP_URL_SCHEME — scheme, PHP_URL_PORT — port и т.п.)
Давайте рассмотрим теперь функцию parse_str(). Данная функция позволяет обрабатывать строку параметров url.
$url_str = "https://webfanat.com:8083/article_id?id=136&new=1#136"; $query = parse_url($url_str, PHP_URL_QUERY); parse_str($query, $output); var_dump($output);
В саму функцию мы передаем строку параметров url и переменную($output) в которую будет возвращен результат. Отмечу что наличие второго аргумента обязательно!
В итоге у нас в переменную $output записывается ассоциативный массив содержащий пары свойств и значений параметров url строки.
var_dump($output['id']);// значение параметра id
var_dump($output['new']);// значение параметра new
В общем функцию parse_str() мы можем применять к любым строкам такого формата(?свойство=значение&свойство=значение)
На этом данная статья подошла к концу. Не забывайте оставлять комментарии.
Удачи!
webfanat.com
this is my 404 error page is this ok or it need improvements
<?php
/**
* 404.php
*
* The template for displaying 404 pages (not found)
*
* @author BetterStudio
* @package Publisher
* @version 2.0.2
*/
get_header();
// Shows breadcrumb
if ( publisher_show_breadcrumb() ) {
Better_Framework()->breadcrumb()->generate( array(
'before' .
ss="string">'bc-top-style'
) );
}
?>
<div class="content-wrap">
<main <?php publisher_attr( 'content', '' ); ?>>
<div class="container layout-1-col layout-no-sidebar">
<div class="row main-section">
<div class="content-column content-404">
<div class="row first-row">
<div class="col-lg-12 text-404-section">
<p class="text-404 heading-typo">404</p>
</div>
<div class="col-lg-12 desc-section">
<h1 class="title-404"><?php publisher_translation_echo( '404_not_found' ); ?></h1>
<p><?php publisher_translation_echo( '404_not_found_message' ); ?></p>
<div class="action-links clearfix">
 .
t;i class="fa fa-angle-double-right"></i> <?php publisher_translation_echo( '404_go_previous_page' ); ?></a></div>');
}
</script>
<div class="search-action-container">
<a href="<?php echo