Найти последнего символа в строке в PHP

Я занимаюсь переписыванием URL-адресов на PHP и должен найти URLS с косой чертой в конце, а затем выполнить 301 переадресацию. Я думал, что будет простая функция PHP, чтобы найти последнюю строку, но я ничего не мог найти. Первые инстинкты предполагают, что мне нужно использовать регулярное выражение, но я не на 100%.

Вот один пример:

http://domainx.com/characters/ Я хочу найти конечную косую черту и превратить ее в http://domainx.com/characters

Итак, какая функция поможет мне проверить, является ли последний символ «/»?

Хорошее решение для безопасного удаления последнего / для использования

 $string = rtrim($string, '/'); 

rtrim() удаляет все / s в правой части строки, когда есть один или несколько.

Вы также можете безопасно добавить ровно один сингл / в конце URL-адреса:

 $string = rtrim($string, '/').'/'; 

Вы можете использовать substr :

 substr($str, -1) 

Это возвращает последний байт / символ в однобайтовой строке. См. Также многобайтовый строковый вариант mb_substr .

Но если вы просто хотите удалить любые завершающие косые черты, rtrim , вероятно, лучшее решение.

И поскольку вы работаете с URL-адресами, вы также можете взглянуть на parse_url для анализа URL-адресов, поскольку parse_url косая черта не обязательно должна быть частью пути URL.

$string[strlen($string)-1] дает вам последний символ.

Но если вы хотите разделить трейлинг-косые черты, вы можете сделать $string = rtrim($string, '/'); , Если нет косой черты, $string останется неизменной.

Вы можете использовать basename ()

Это вернет characters для http://domainx.com/characters/ а также http://domainx.com/characters

Вы можете сделать следующее: –

 $page = $_SERVER['REQUEST_URI']; $module = basename($page); 

Затем вы можете использовать $module непосредственно в своей условной логике без каких-либо переадресаций.

Если вы хотите получить последний / обрезанный URL-адрес, вы можете сделать следующее:

Если вы храните базовый url проекта в файле конфигурации: –

 BASE_URL = 'http://example.com' 

то вы можете сделать это: –

 $page = $_SERVER['REQUEST_URI']; $module = basename($page); $trimmedUrl = BASE_URL.'/'.$module; 

Вы можете использовать preg_replace() a / в конце темы

 $url = 'http://domainx.com/characters/'; $url = preg_replace('/(?:\/)$/', '', $url);