如何从PHP中的较大字符串的左侧删除字符串?

时间:2016-07-18 06:58:46

标签: php

我有一个变量可以发送数据,如: -

netsh wlan delete profile name="gp"thumb_8_2393_Shades 1.jpg& hanger-cloth.jpg;

现在,当该值具有' thumb _'在左侧,我想丢弃拇指_'字符串来自完整值。

所以我写了这段代码: -

Red-Lehenga-1.jpg

我遇到的问题是,它还会从$pImgBig = trim($pI['image'],'thumb'); 中移除'h'

我如何克服这个问题?

2 个答案:

答案 0 :(得分:1)

您可以使用下面的preg_replace(): -

$pImgBig = preg_replace('/^thumb_/','',$pI['image']);

<?php
$data = 'hanger-cloth.jpg';

$data = preg_replace('/^thumb_/','',$data);
echo $data;

$data1 = 'thumb_8_2393_Shades 1.jpg';

$data1 = preg_replace('/^thumb_/','',$data1);
echo $data1;

输出: - https://eval.in/606785

@RaimRaider以正确的方式非常好地使用str_replace(),如下所示: -

<?php
$data = 'hanger-cloth.jpg';

$data =  substr($data,0,6)==='thumb_' ? str_replace( 'thumb_', '', $data ) : $data;
echo $data;

$data1 = 'thumb_8_2393_Shades 1.jpg';

$data1 =  substr($data1,0,6)==='thumb_' ? str_replace( 'thumb_', '', $data1 ) : $data1;
echo $data1;

$filename=substr($filename,0,6)==='thumb_' ? str_replace( 'thumb_', '', $filename ) : $filename;

输出: - https://eval.in/606800

答案 1 :(得分:1)

使用strpossubstr函数的解决方案:

$images = ['thumb_8_2393_Shades 1.jpg','hanger-cloth.jpg', 'Red-Lehenga-1.jpg'];
foreach ($images as &$img) {
    if (strpos($img, 'thumb_') === 0) {  // if file name starts with 'thumb_'
        $img = substr($img, 6);
    }
}

print_r($images);

输出:

Array
(
    [0] => 8_2393_Shades 1.jpg
    [1] => hanger-cloth.jpg
    [2] => Red-Lehenga-1.jpg
)