Вырезать текст от первого до последнего символа

248
21 марта 2017, 14:43

Есть ссылка: http://site.ru/test/folder/photo/ph-1.png

Каким образом получить из этой ссылки только: test/folder/photo

То есть, мне нужно то что идет после // и до последнего /

Answer 1

Можно вручную вырезать то, что нужно.

$str = 'http://site.ru/test/folder/photo/ph-1.png';
$parts = explode('/', $str);
$path = implode('/', array_slice($parts, 3, -1));
echo $path; // test/folder/photo
echo implode('/', array_slice($parts, 2, -1)); // site.ru/test/folder/photo

Демонстрация

Answer 2

Можете использовать parse_url

$url = 'http://site.ru/test/folder/photo/ph-1.png';
   $data = parse_url($url); 
   print_r($data );

получится на выходе

Array ( [scheme] => http [host] => site.ru [path] => /test/folder/photo/ph-1.png )

Обновлено

$clearArray = explode('/',$data['path']);
array_pop($clearArray);
$implodeData = implode('/',$clearArray);
print_r($implodeData);
Answer 3

Дополню ответ @Arsen

После парсинга url

$url = 'http://site.ru/test/folder/photo/ph-1.png';
$data = parse_url($url); 

можно написать так:

$str = data['path'];
echo trim(substr($str, 0, strrpos($str, '/')), "/");

что там написано:

strrpos - возвращает позицию последнего вхождения подстроки в строке

substr - возвращает подстроку строки string, начинающейся с start символа по счету и длиной length символов

trim - удаляет пробелы (или другие символы) из начала и конца строки. Вторым параметром можно передать набор символов, которые можно обрезать.

Answer 4
$str='http://site.ru/test/folder/photo/ph-1.png';
preg_match_all('|.*//(.*)/.*|i',$str,$res);
print_r($res);

Array ( [0] => Array ( [0] => http://site.ru/test/folder/photo/ph-1.png ) [1] => Array ( [0] => site.ru/test/folder/photo ) )

READ ALSO
Вывести переменную [дубликат]

Вывести переменную [дубликат]

На данный вопрос уже ответили:

274
Хранение ключа в программе

Хранение ключа в программе

Можно ли хранить ключ в открытом виде в виде переменной при выполнении программы? То есть, есть зашифрованные AES при помощи ключа юзера данныеПользователь...

273
Как запустить exe файл на другой машине

Как запустить exe файл на другой машине

Я создал программку на с++ в visual studio, скинул всю программку на другую машину в которой отсутствует visual studio, и при запуске exe файлавыдало что...

287