获取最后一个斜杠和前一个斜杠的值。在php中

获取最后一个斜杠和前一个斜杠的值。在php中,php,Php,我有如下数组 Array ( [0] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR04A-94527.jpg [1] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR05A-95528.jpg [2] => C:\wamp\www\sthub\application\controlle

我有如下数组

Array
(
    [0] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR04A-94527.jpg
    [1] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR05A-95528.jpg
    [2] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR06A-961000001.jpg
    [3] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR06A-96529.jpg
    [4] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR07A-971000002.jpg
    [5] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR07A-97530.jpg
    [6] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR08A-981000003.jpg
    [7] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR08A-98531.jpg
    [8] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR09A-991000004.jpg
    [9] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR09A-99532.jpg
    [10] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR09A-99533.jpg
    [11] => C:\wamp\www\sthub\application\controllers/../../download/qr/SyR09A-99534.jpg
    [12] => C:\wamp\www\sthub\application\controllers/../../download/qr/Syno53.jpg
    [13] => C:\wamp\www\sthub\application\controllers/../../download/qr/Syno54.jpg
    [14] => C:\wamp\www\sthub\application\controllers/../../download/qr/Syno55.jpg
    [15] => C:\wamp\www\sthub\application\controllers/../../download/qr/Syno56.jpg
    [16] => C:\wamp\www\sthub\application\controllers/../../download/qr/Syno57.jpg
)
我想在最后一个斜杠之后和.jpg之前获取值,如SyR04A-94527、SyR05A-95528等。使用Regx:

<?php
$a = [
    'C:\wamp\www\sthub\application\controllers/../../download/qr/SyR04A-94527.jpg',
    'C:\wamp\www\sthub\application\controllers/../../download/qr/SyR05A-95528.jpg'
];

foreach( $a AS $path ){
    if( preg_match('/\/([^\/]+)\.[a-z]+$/i', $path, $match))
        print_r($match[1]."\n");
}
你可以在这里测试

我本来打算使用
pathinfo
,但我的沙盒站点已经禁用了它,我懒得打开服务器。但它会是这样的:

$a = [
   'C:\wamp\www\sthub\application\controllers/../../download/qr/SyR04A-94527.jpg',
   'C:\wamp\www\sthub\application\controllers/../../download/qr/SyR05A-95528.jpg'
];

foreach( $a AS $path )
    echo pathinfo ($path, PATHINFO_FILENAME)."\n";

干杯

您正在尝试解析文件名,而PHP已经有很多内置函数来解析文件名。无需使用
explode
或正则表达式等操作字符串本身:

$filename = 'C:\wamp\www\sthub\application\controllers/../../download/qr/SyR04A-94527.jpg';

echo pathinfo($filename, PATHINFO_FILENAME);
// SyR04A-94527
$string=explode(“/”,'C:\wamp\www\sthub\application\controllers/./../download/qr/SyR04A-94527.jpg')
$lastVal=end($string)
$getName=explode('.',$lastVal)
echo$result=$getName[0]
$filename = 'C:\wamp\www\sthub\application\controllers/../../download/qr/SyR04A-94527.jpg';

echo pathinfo($filename, PATHINFO_FILENAME);
// SyR04A-94527