Вам нужно сопоставить строку URL, чтобы проверить, присутствует ли в URL подкаталог forum
, используя preg_match () .Позже вы можете использовать str_replace () для удаления ?
из вашего URL.
<?php
function removeQuestionMarks($URL){
if(preg_match('/^http(s)?:\/\/example\.com\/forum\/.*$/',$URL) === 1){
$URL = trim($URL);
$URL = str_replace("?","",$URL);
}
return str_replace([' ', '&'],['%20', '&'],$URL);
}
echo removeQuestionMarks('https://example.com/forum/post/work/22/what-are-requirements-to-get-a-work-permit?/24'),PHP_EOL;
echo removeQuestionMarks('https://example.com/forum/ why? is it difficult?/877');
Демо: https://3v4l.org/FXDml
Обратите внимание, что Я не использовал urlencode()
, поскольку он также преобразовывал бы другие символы в URL, что нежелательно в вашем случае.