Как получить часть ссылки до последнего символа "/" при использовании PHP?

Как в PHP создать код canonical, состоящий из ссылки до последнего слеша в URL-адресе, генерируемом с изменяемой последней частью после последнего слеша?
  • 15 января 2024 г. 15:37
Ответы на вопрос 2
Чтобы получить часть URL до последнего символа "/", вы можете использовать PHP-функции, такие как `strrpos` для нахождения последнего вхождения слеша и `substr` для извлечения необходимой подстроки. Пример кода:

```php
$url = "http://example.com/some/path/to/resource/";

// Найти позицию последнего символа "/"
$lastSlashPosition = strrpos($url, '/');

// Получить URL до последнего слеша (не включая сам слеш)
$canonical = substr($url, 0, $lastSlashPosition);

echo $canonical; // Выведет: http://example.com/some/path/to
```

Если последний слеш является частью директории, и вы хотите оставить директорию целой, то вам следует обрезать до предпоследнего слеша. В этом случае вы можете дважды использовать `strrpos`:

```php
$url = "http://example.com/some/path/to/resource/";

// Найти позицию предпоследнего символа "/"
$lastSlashPosition = strrpos($url, '/', -2);

// Получить URL до предпоследнего слеша (включая этот слеш)
$canonical = substr($url, 0, $lastSlashPosition + 1);

echo $canonical; // Выведет: http://example.com/some/path/to/
```

Обратите внимание, что `-2` в `strrpos` означает поиск с двух символов перед концом строки, таким образом пропускаем последний слеш и находим предпоследний.

Это базовый пример, но в зависимости от ваших потребностей URL может нуждаться в дополнительной обработке, особенно если он содержит строку запроса (`?query=params`) или якорь (`#anchor`). В таких случаях стоит также очистить URL от этих частей перед обрезанием.
простая работа со строковыми функциями . 
Похожие вопросы