У меня есть строка http://mycloud.net/4d4bf89da2e38.jpg
http://mycloud.net/4d4bf89da2e38.jpg
хочу 4d4bf89da2e38.jpg
4d4bf89da2e38.jpg
Как я могу получить это с помощью функции PHP или регулярного выражения.
Пожалуйста, предложите.
Спасибо
Использование basename(), вероятно, было бы лучше в этом случае.Но чтобы ответить на заголовок вашего вопроса, вы должны использовать substr() для получения подстроки из фрагмента текста.
basename()
substr()
basename('http://mycloud.net/4d4bf89da2e38.jpg'); // returns 4d4bf89da2e38.jpg
$name = pathinfo('http://mycloud.net/4d4bf89da2e38.jpg', PATHINFO_BASENAME);
Использовать функцию basename (): http://php.net/manual/en/function.basename.php. Вероятно, это быстрее, чем регулярное выражение и будет кроссплатформенным
[^/]*$
даст вам все после последней косой черты.
В PHP:
if (preg_match('%[^/]*$%', $subject, $regs)) { $result = $regs[0]; } else { $result = ""; }
Но разве нет библиотеки для работы с путями к файлам?
Или вы помещаете sjmg ответ в одну строку;)
$name = array_pop(explode('/','http://mycloud.net/4d4bf89da2e38.jpg'));
Вам не нужны эти функции, вам нужно только разбить строку.
$ cadena = 'http://mycloud.net/4d4bf89da2e38.jpg';
$ vec = explode ("/", $ cadena);
$ name = array_pop ($ vec);
, и у вас есть значение в переменной $ name