2017-05-17 12 views
-4

データ内にこのシンボルが検出されている間、挿入クエリと更新クエリに問題があります。 私はこの記号を文字列から削除し、 '' 'と置き換えたいと思います:'dickey s-barbecue-pit-d'iberville '。このシンボルをPHPの文字列から削除します

おかげで、

+0

は、あなたの質問のいくつかのより詳細な説明を必要とし、この値を取得する場所から? – HirenMangukiya

+0

@HirenMangukiya実際には、selectクエリの.queryからの文字列.queryはnameとcity.thenを返します。nameとcityの.concatenated文字列とdbの一部のデータにはダイヤモンドシンボルが含まれているため、上記の 'permalink'文字列が失敗しました。 – Trishna

+0

replacementは置換文字です。置き換えは、破損したテキストを処理する1つの方法です。このようなテキストの破損は、書き込まれたエンコーディング以外のエンコーディングでテキストバイトを読み取るときに発生する可能性があります。それはバグでしょう。このようなバグを見つけて修正できるかどうかを確認してください。できない場合は、ユーザーがテキストが壊れていることをよく知りたいと思うかもしれないと考えているので、削除すると、そのテキストを削除することになります。 –

答えて

0

私はそのシンボルがUnicode文字 だと思うので、あなたが

$str = preg_replace('/[^\p{L}\s]/u','',$string); 

これにより、文字のこれらのタイプを削除することができますだけで0-31と127これはASCIIとUTFで動作を削除します両方とも同じ制御設定範囲を共有しているからです(下のmguttで示されているように)。厳密に言えば、これは/ u修飾子なしで動作します。しかし、それは他の文字を削除したい場合は、人生を楽にします

+0

私は上記のコードを試しましたが、NULLを返します。 – Trishna

+0

私は上記のコードを試しましたが、NULLを返します。 – Trishna

+0

@Trishna編集したコードを確認してください。それは私のために働く –

0

これを試してみてください。

$string = "dickey�s-barbecue-pit-d'iberville"; 

$new = preg_replace('/[^x00-x7f]/', '', $string); 

echo $new; 
+0

私はpermalinkとしてその文字列を設定するダイヤモンドのsign.becauseを除くすべての他の文字が必要なすべての特別なcharacters.iを置き換える上記のcode.butを試みた。 – Trishna

0

あなたは同じ文字をコピーし、それを使用することがあります。

PHPfiddle - ファイル名を指定して実行またはF9

$str = "dickey�s-barbecue-pit-d'iberville"; 
$str = str_replace('�', "'", $str); 
echo $str; 
0

お返事をありがとうヒット。

私は

$final = utf8_encode($string); 

ここでは、$string = dickeys-バーベキューピット・フローウッド、のような溶液を得ました。

および$final = dickeys-barbecue-pit-flowood;

おかげで、

+0

私のローカルサーバーとこの[** PHP Fiddle **](http://phpfiddle.org/lite/code/)には、** 'dickey�s-barbecue-pit-d'iberville' **が表示されますruas-1uqg) –

関連する問題