2014-12-16 6 views
0

Я хотел бы знать, как я могу вырезать string в PHP, начиная с последнего символа -> до определенного символа. Допустим, у меня есть по следующей ссылке:Вырезать строку от конца до определенного символа в php

www.whatever.com/url/otherurl/2535834 

и я хочу, чтобы получить 2535834

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

Благодаря

ответ

1

В этом частном случае, гиперссылка, используйте basename():

echo basename('www.whatever.com/url/otherurl/2535834'); 

Более общее решение будет preg_replace(), как это:

     <----- the delimiter which separates the search string from the remaining part of the string 
echo preg_replace('#.*/#', '', $url); 

Узор '#. */#' использует стандартную жадность регулярного выражения PCRE - значит, в g он будет соответствовать максимально возможному количеству символов и поэтому будет потреблять /abc/123/xyz/ вместо /abc/ при сопоставлении рисунка.

+0

базовое имя? ничего себе просто! благодаря! – supersize

+0

Да, это просто. Btw, используйте 'dirname()', если вы хотите получить другую часть строки, что означает путь вместо имени файла. – hek2mgl

0

Это должно работать для вас:

(Таким образом, вы можете получить номер с или без косой черты, если вам нужно что)

<?php 

    $url = "www.whatever.com/url/otherurl/2535834"; 
    preg_match("/\/(\d+)$/",$url,$matches); 
    print_r($matches); 

?> 

Выход:

Array ([0] => /2535834 [1] => 2535834) 
0

С strstr() и str_replace() в действии

$str = 'www.whatever.com/url/otherurl/2535834'; 
echo str_replace("otherurl/", "", strstr($str, "otherurl/")); 

strstr() находит все (в том числе иглы) после того, как иглы, а игла заменяется на "" с помощью str_replace()

0

, если ваш рисунок исправлен, вы всегда можете сделать:

$str = 'www.whatever.com/url/otherurl/2535834'; 
$tmp = explode('/', $str); 
echo $temp[3]; 
0

Вот мой вариант:

$string = "www.whatever.com/url/otherurl/2535834"; 
echo substr($string, strrpos($string, "/") + 1, strlen($string)); 
Смежные вопросы