PHP 如何在 2 个符号之间剪切字符串


PHP how to cut a string between 2 symbols

我有这个图像名称:very-nice-rose-123-3.jpg

我怎样才能将其切成几部分,并仅接收最后一个破折号和图像扩展之间的部分。我需要在这个例子中得到3

你可以使用字符串函数,如explode()substr()等。

$file = explode('.', $file);
$file = explode('-', $file[0]);
echo end($file);

演示

或者您可以使用正则表达式:

if (preg_match('~-?('w+)'.'w+$~', $file, $match)) {
    echo $match[1];
}

演示

我这样做的方式通常是:

<?php
$num = strrev(
    explode(
        '-',
        strrev($filename),
        2
    )[0]
);

Docs for strrev() 和 explode()。

通过正则表达式。

if (preg_match('~(?<=-)[^-.]+(?='.[a-z]+$)~', $file, $match)) {
    echo $match[0];
}

if (preg_match('~-([^-.]+)'.[a-z]+$~', $file, $match)) {
    echo $match[0];
}

演示