2012-05-04 12 views

答えて

1

シンプルなスペースがstr_replace()を使用して除去することができます。

$image = "foo and bar.png"; 

// foo-and-bar.png 
echo str_replace(" ", "-", $image); 

より複雑な検索が/交換するには、正規表現使用して行うことができます。この例では

$image = "foo2 and_ BAR.png"; 

// foo2-and_-bar.png 
echo preg_replace("/[^a-z0-9\._]+/", "-", strtolower($image)); 

を、我々は文字を許可しますaz、0〜9の数字、ピリオド、および下線 - 他のすべての文字列は1つのダッシュに置き換えられます。ファイル名は、置換機能を実行する前にすべて小文字に変換されます。

+0

を試すことができ、我々はそれを作ることができますstrtolowerとstr_replaceの両方で動作しますか? – jaredroweseo

+0

@ user1373974この解決策で 'strtolower'を使用する例については、私の更新を見てください。 – Sampson

0

次のような出力をstr_replaceでラップするだけです。

消毒用
<img src="/SC/images/<?php echo str_replace(" ", "-", strtolower(the_title('','',false))); ?>-header.jpg" border="0" /> 
+0

パーフェクト!ありがとうございました! – jaredroweseo

0
echo str_replace(' ', '-', strtolower(the_title('','',false))); 
+0

これも機能します - ありがとう! – jaredroweseo

0

マイfavorite regex

echo strtolower(preg_replace('/[^a-zA-Z0-9\-]/', '', preg_replace('/\s/g', '-', the_title('', '', false)))); 

これは、すべての英数字以外の文字を削除します。

+0

しかし、現在のstrtolower呼び出しを保持する方法を知る必要があります。 – jaredroweseo

+0

これはうまくいくはずです(前後に下げることは重要ではありません)が、最初にダッシュするスペースが必要であるという事実には触れません。 – buley

0

このような交換がどのように役立つかはわかりません。
名前にスペースが含まれている実際の画像がある場合は、置き換え後に表示されません。
urlencode()で正しくエンコードする必要があります。

イメージ名を置き換える場合は、リンク上ではなく画像上で行う必要があります。
リンク上ではなく画像上で行わなければならない "サニタイズ"が必要な場合は、
あなたはURIの一部をコードする場合 - urlencode()

を使用するすべてのプログラマのアクションがsanely選択しなければ、単にランダムにどこ

2

の選び出していないあなたは

move_uploaded_file($_FILES["file"]["tmp_name"],"product_image/" . str_replace(" ","_",$_FILES["file"]["name"])); 
関連する問題