2012-03-30 6 views

ответ

5
$a = 'string you got with substr. iwehfiuhewiufh ewiufh . iuewfh iuewhf 
    iewh fewhfiu h. iuwerfh iweh f.ei wufh ewifh iuhwef'; 

$p = strrpos($a, '.'); 
if ($p !== false) // Sanity check, maybe there isn't a period after all. 
    $a = substr($a, 0, $p + 1 /* +1 to include the period itself */); 
echo $a; 
+2

Все в одной строке: 'if (($ p = strrpos ($ a, '.'))! == false) $ a = substr ($ a, 0, $ p + 1);' – Xeoncross

+0

@Xeoncross Да, я обычно делаю это тоже, хотя это может быть немного менее читаемым для новичка. – GolezTrol

+0

Прекрасно работает, никогда не знал о strrpos, спасибо снова – Jacinto

1

Как Алекс отметил, strrpos() можно найти место последнего вхождения подстроки:

$offset = strrpos($row->review[$i],'.'); 

Затем вы используете это смещение отрезать последнюю часть главной переменной:

echo substr($row->review[$i],$offset); 
0

Это довольно простое решение и будет работать независимо от того, как долго расширения или сколько точек или других символов в строке.

$filename = "abc.def.jpg"; 

$newFileName = substr($filename, 0 , (strrpos($filename, "."))); 

//$newFileName will now be abc.def 

В основном это просто ищет последнее появление. а затем использует подстроку для извлечения всех символов до этой точки.

Это похоже на один из ваших примеров с googled, но проще, быстрее и проще, чем регулярные выражения и другие примеры. Ну, все равно. Надеюсь, это поможет кому-то.

Смежные вопросы