2016-08-02 16 views
1

アップロード中に画像にスラッグ名をつけようとしていますが、私はstr_replaceでテストしていましたが、動作しません。Image POST php slug

$_FILES['imgProfile']['name'] = str_replace("í", "i", $_FILES['imgProfile']['name']); 

i?magen.pngのようなものが返され、画像はアップロードされません。

私はこの機能を試しても動作しますが、ファイル拡張子を削除します。

function slugify($text) 
{ 
    // replace non letter or digits by - 
    $text = preg_replace('~[^\pL\d]+~u', '-', $text); 

    // transliterate 
    $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text); 

    // remove unwanted characters 
    $text = preg_replace('~[^-\w]+~', '', $text); 

    // trim 
    $text = trim($text, '-'); 

    // remove duplicate - 
    $text = preg_replace('~-+~', '-', $text); 

    // lowercase 
    $text = strtolower($text); 

    if (empty($text)) { 
    return 'n-a'; 
    } 

    return $text; 
} 

ファイル名がある場合、私は唯一のa,e,i,o,u

-á,é,í,ó,úのような文字でblank spacesを削除する必要があります:"prueba para Guardar ímagen ñueva.png"

それがなければなりません:"prueba-para-guardar-imagen-nueva.png"

ありがとう!

+0

あなたはstr_replaceに見たのですか? –

+0

はい、動作しません。 –

答えて

0
あなたが最初の行に \.

// replace non letter or digits by - 
$text = preg_replace('~[^\pL\d\.]+~u', '-', $text); 

3行目のために追加する必要があり、あなたの希望の動作のために

すぎ\.

// remove unwanted characters 
$text = preg_replace('~[^-\w\.]+~', '', $text); 
+0

完璧に動作します!どうもありがとうございました!! オリジナル: 'prueba para Guardarímagenñueva.png' 結果:' prueba-para-guardar-i-magen-n-ueva.png' –

+0

私の喜びです。喜んで:-) –