Небольшая помощь PHP с этим форматированием строки - PullRequest
0 голосов
/ 24 декабря 2009

У меня есть строка в этом формате:

    /SV/temp_images/766321929_2.jpg

Есть ли маленький кусочек кода, чтобы получить цифры ДО подчеркивания, НО ПОСЛЕ temp_images /? В этом случае я хочу получить только 766321929 ...?

Спасибо

Ответы [ 5 ]

3 голосов
/ 24 декабря 2009

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

$str = '/SV/temp_images/766321929_2.jpg';
$m = array();
if (preg_match('#temp_images/(\d+)_#', $str, $m)) {
    echo $m[1];
}


Идея:

  • Используйте preg_match с регулярным выражением
    • , который работает со всем, что начинается с 'temp_images/'
    • и оканчивается на '_'
    • но возвращает только числа (обозначенные \d), найденные между этими
  • И третий параметр, $m, будет содержать совпадения:
    • $m[0] будет все, что было найдено
    • $m[1] будет первым захваченным (между ()) part - т.е. то, что вы ищете, здесь


И вывод:

766321929


И если вам интересно узнать, что еще можно узнать о регулярных выражениях, не стесняйтесь взглянуть на Регулярные выражения (совместимые с Perl) - там есть много интересных вещей для чтения; -)

1 голос
/ 24 декабря 2009
$str = '/SV/temp_images/766321929_2.jpg';
list($numbers) = explode('_', basename($str));
echo $numbers;
0 голосов
/ 24 декабря 2009

Типовое решение, не привязанное к конкретному каталогу:

$name = preg_replace('/_.*/', '', basename($string));
0 голосов
/ 24 декабря 2009

Вы можете использовать basename , а затем взорвать результирующее имя файла как таковое ...

$fileComponents = explode('_', basename($filePathString));
$requiredComponent = $fileComponents[0];

Тем не менее, вам нужно будет добавить проверку работоспособности и т. Д. По мере необходимости.

0 голосов
/ 24 декабря 2009

Вот грязный путь:

$contents = ' /SV/temp_images/766321929_2.jpg';
$contents = substr($contents, strpos($contents, 'temp_images/'));
$contents = substr($contents, strpos($contents, '/'));
$contents = substr($contents, 1);
$contents = substr($contents, 0, strpos($contents, '_'));
print $contents;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...