2016-07-18 17 views
0

私は次のように私にデータを送ることができる変数を持っている: -PHPのより大きな文字列の左側から文字列を削除するには?

thumb_8_2393_Shades 1.jpghanger-cloth.jpg & Red-Lehenga-1.jpg

ここで、値が左側に 'thumb_'を持つ場合、完全な値から 'thumb_'文字列を破棄したいと思います。

だから私はこのコードを書いた: -

$pImgBig = trim($pI['image'],'thumb'); 

私が直面しています問題は、それはまた'hanger-cloth.jpg'から'h'を削除して、何ですか。

どうすればこの問題を解決できますか?

+4

'$ファイル名= str_replace( '親指_'、 ''、$ファイル名); '? – RamRaider

+0

変数にコンマ区切りの値がありますか? –

+0

@RamRaiderと、文字列の中央に「thumb_」が含まれていて、左側に文字列が含まれていない場合はどうなりますか? – Saswat

答えて

1

あなたは以下のようなpreg_replace()を使用することができます: - :以下のように正しい方法でstr_replace()を使用して、非常に素敵な暗示を与える@RaimRaider https://eval.in/606785

- :

$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; 

出力 -

<?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

+0

'あなたは 'not trueを使用しなければなりません。正規表現を使うことは、しばしば問題につながります。 – AD7six

+0

この場合、regexを使用する必要があります。これは、文字列の先頭でサブ文字列を削除する必要があるためです。 'preg_replace( '/^thumb _ /'、 ''、$ data)' –

+0

@anant、あなたはstr_replaceを使うことはできません。値 '8_2393_thumb_Shades 1.jpg' –

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 
) 
関連する問題