PHP

画像ファイル名の.が抜けていた場合に.を追加する

More than 1 year has passed since last update.

png jpg gifの.付け忘れに.を勝手に追加します

<?php
/**
 * 本来の拡張子 png jpg gif としたいのかなという場合に
 * '.'を付け忘れていた場合に勝手に追加する
 * 
 * @param string $string
 * @return string
 */
function addDotImageName($string)
{
  if(preg_match('/(png|jpe*g|gif)/',substr($string,'-4'))){
    preg_match_all('/(png|jpe*g|gif)/',$string,$match, PREG_OFFSET_CAPTURE);
    $match = end($match[0]);
    $string = $string[$match[1]-1] !== '.' ? substr($string,0,$match[1]).'.'.$match[0] : $string ;
  }
  return $string ;
}

csvのファイル処理時にエラー

csv取り込み時にエラーがあった場合に画面に取り込みエラーを表示していたのですが、どうしてもエラーが出るから見てくれとのことで確認しました。

サーバー上に事前に上がっているファイル名がcsvに入ってるはずなんですが、手打ちしたのか"123jpgpnggif456xxxxpngjpeg"のように拡張子の前の.が抜けてたため、file_existsした場合に100%存在しないと返ってきてたみたいです。

いちいち修正してもらうのも手間なんで勝手に.付けて確認してなければそのままエラー表示でいいかということで.をつけてみました。