preg_matchやpreg_replaceで文字が全て消える問題

受付中 プログラミング
2024-12-24
hoge
base64をpreg_matchやpreg_replaceで処理したところ文字が全て消えることがあります。 ただ、base64によってはきちんと動作したりとなぜか処理が安定しません。
        $img = preg_replace('/data:image\/(\w+);base64,/', '', $base64);
        
誰か助けてください。。
回答一覧
文字数と正規表現が怪しいです。 base64だと文字数が100万以上とか普通にいきます。 文字列が大きいと正規表現の処理がきちんと動作しない場合があります。 正規表現を見直してみてください。 ちなみに文字数100万以上のbase64の場合、下記では動きませんでした。 文字数が大きい場合での「*」は不具合の元です。
        $img = preg_replace('/^data:image.*base64,/', '', $base64);
        
hoge
ありがとうございます!! 正規表現を見直したところうまく動きました!
hoge