2013-06-23 2 views
4

У меня есть следующий PHP переменнойPHP, удаление частей URL переменной

$currentUrl 

Эта переменная PHP возвращает мне текущую страницу URL. Например: он возвращает:

http://example.com/test-category/page.html?_ore=norn&___frore=norian 

Что PHP код я могу использовать, который будет принимать эту ссылку URL-адрес и удалить все после «.html» и вернет мне ссылку чистый URL-адрес, например:

http://example.com/test-category/page.html 

Это будет возвращен в новой переменной $ clean_currentUrl

+0

http://php.net/manual/en/function.parse-url.php – hjpotter92

ответ

1

Что-то вроде этого: комментарий

<?php 
$currentUrl = 'http://example.com/test-category/page.html?_ore=norn&___frore=norian'; 

preg_match('~http:\/\/.*\.html~', $currentUrl, $matches); 
print_r($matches); 

знакомства amigura в ниже. Для того, чтобы справиться с этим случаем изменить регулярное выражение:

<?php 
$currentUrl = 'http://example.com/test-category/page.html?_ore=norn&___frore=norian'; 

preg_match('~(http:\/\/.*\..+)\?~', $currentUrl, $matches); 
print_r($matches); 
+0

Благодарим вас за код Ruben, он возвращает чистый URL-адрес, но также добавляет некоторые другие вещи. Это то, что он возвращает с помощью вашего кода: «Array ([0] => example.com/test-category/page.html)» – RaduS

+0

Как я могу заставить его вернуть чистый «http://example.com/test- категория/page.html?» без «Массив ([0] =>» в попрошайничестве и без «)» в конце – RaduS

+0

print_r должен был просто показать вам результат. Вы можете получить результат, используя $ matches [0]: echo $ matches [0]; – Ruben

1
$parts = explode('?', $currentUrl); 
$url = $parts[0]; 
13

с РНР parse_url()

<?php 
$url = "http://example.com/test-category/page.html?_ore=norn&___frore=norian"; 
$url = parse_url($url); 

print_r($url); 
/* 
Array 
(
    [scheme] => http 
    [host] => example.com 
    [path] => /test-category/page.html 
    [query] => _ore=norn&___frore=norian 
) 
*/ 
?> 

Затем вы можете создать свой желаемый URL из значений.

$clean_url = $url['scheme'].'://'.$url['host'].$url['path']; 
+0

Ваше предложение приемлемо, также работает очень хорошо. Спасибо за ваш ответ. – RaduS

+6

Это должен был быть принятый ответ. Это правильный инструмент для работы. – TecBrat

+2

Привет, TecBrat. Это правда, это также правильный ответ, и я хочу, чтобы я мог принять их как правильно. Я буду использовать parse_url() и preg_match для разных целей. Важно думать, что я узнал обо всех этих решениях. – RaduS