2016-01-20 3 views
2

У меня есть URL-адрес: www.test.fr/dir/file.html#hello Я бы удалил все после персонажа #. Я попробовал это /#[a-z0-9]+/Preg заменить php delete после символа

+1

Я не чувствую, как отвечать и получать очки .. но лучше использовать переменные PHP $ _SERVER .... http://php.net/manual/en/reserved.variables.server.php Если вы прочитаете эту статью, вы можете найти множество зарезервированных переменных, которые могут помогите вам с URL-адресами, я думаю, что 'REQUEST_URI',' SERVER_NAME' и 'PHP_SELF' отлично подходят для проверки. – Zeke

+0

Точный, ваш ответ хороший, но в моем случае я получаю свой url через CURL. PHP '$ _SERVER' работает в этом случае? @Zeke – simon

+0

Да, вам не нужно использовать cURL для получения вашего собственного URL ... переменные '$ _SERVER' зарезервированы и работают в любой версии PHP ... но вам нужно закодировать его определенным образом, чтобы получить ожидаемый результат ... который я, честно говоря, не хочу делать это прямо сейчас. В любом случае, это будет работать с 'preg_replace', но я думаю, что' $ _SERVER' является «более чистым». – Zeke

ответ

2

Вы код почти правильно, это работает просто отлично:

$new = preg_replace('/#[a-z0-9]+/', '', 'www.test.fr/dir/file.html#hello'); 
print ($new); 

prints: 
www.test.fr/dir/file.html 

Вы можете проверить это here

1

Вы можете explode от '#' и получить первую позицию. Что-то вроде этого:

$url = "www.test.fr/dir/file.html#hello"; 
$result = explode("#",$url)[0]; 
Смежные вопросы