sanitize_file_name()


WordPressのsanitize_file_name()関数は、ファイル名を安全な形式に変換するために使用されます。この関数は、不正な文字を取り除き、ファイル名をクリーンにすることで、セキュリティと互換性を向上させます。

シンタックス

sanitize_file_name( string $filename );
  • $filename (string) — 変換するファイル名。

例 1: ファイル名のサニタイズ

次の例では、アップロードされたファイル名を安全な形式に変換します。

<?php
$original_name = "ファイル名@123.jpg";
$safe_name = sanitize_file_name( $original_name );
echo $safe_name; // 結果: ファイル名123.jpg
?>

例 2: ファイル名の一括変換

配列内のファイル名をサニタイズする例です。

<?php
$file_names = array( "テスト@ファイル.png", "サンプル#画像.jpeg" );
$safe_file_names = array_map( 'sanitize_file_name', $file_names );
print_r( $safe_file_names );
// 結果: Array ( [0] => テストファイル.png [1] => サンプル画像.jpeg )
?>

例 3: カスタムファイル名の生成

投稿タイトルから安全なファイル名を生成する例です。

<?php
$title = get_the_title();
$safe_filename = sanitize_file_name( $title ) . ".txt";
echo $safe_filename; // 結果: 投稿タイトルに基づいた安全なファイル名
?>

例 4: ユーザー入力の検証

ユーザーが入力したファイル名を処理する例です。

<?php
$user_input = "ユーザー@入力ファイル.doc";
$clean_name = sanitize_file_name( $user_input );
echo $clean_name; // 結果: ユーザー入力ファイル.doc
?>

例 5: サーバー側のファイル保存時の使用

ファイルをアップロードする前にファイル名をクリーンアップします。

<?php
if ( isset( $_FILES['file'] ) ) {
    $safe_name = sanitize_file_name( $_FILES['file']['name'] );
    move_uploaded_file( $_FILES['file']['tmp_name'], wp_upload_dir()['path'] . '/' . $safe_name );
}
?>

注意事項:

  • この関数はファイル名をサニタイズしますが、他のセキュリティ対策と併用する必要があります。
  • 拡張子や特定の文字列が削除される場合がありますので、使用後の結果を確認してください。

関連機能: