1

文字と数字以外のすべてをphp変数から削除する次のコードを見つけました。完璧です!

$string = "remove ever^&thing but *&^*&%£ letters & numbers*&^*";
$cleansedstring = preg_replace('#\W#', '', $string);
echo $cleansedstring;

しかし、同じルールを使用して mysql の列をクエリしたいと考えています。目的は、式からすべてのアンパサンド、アポストロフィ、ハイフンなどを少し削除することです。

今、私はいくつかの見苦しい REPLACE ステートメントを使用しています!

AND Replace(Replace(Replace(Replace(Replace(MYColumn, '&', ''), '-', ''), ' ', ''), '(', ''), ')', '') =

数字と文字だけを見る防弾クエリが欲しいです!

:)

編集:私は私の問題をさらに説明する必要があると思います.おそらくあなたの1人が何か他のことを提案することができます....

長い会社名を抜き出し、SEO に適した URL にクリーンアップすることで、Web サイト全体のリンクを生成します。たとえば、「Bill & Ben's Flower Pot/Garden Service」があるとします。最終的に彼らのページへの URL は /bill-bens-flower-pot-garden-service.htm のようになります。

その URL は書き換えられた URL なので、実際のページは company.php?name=bill-bens-flower-pot-garden-service のようになります

「名前」を取得してデータベースにクエリを実行し、会社の詳細を返す必要があります。しかし、取得:

ビルベンスフラワーポットガーデンサービス

以下の詳細を返します。

ビル & ベンズ フラワー ポット/ガーデン サービス

常に防弾とは限りません。

あちこちで何回置換を行っているかという点で、コードが少し乱雑になっているように感じます。私の理論は、文字と数値以外のデータをすべて取り除き、文字列をそのように比較することでした:

WHERE Company = 'billbensflowerpotgardenservice' - しかし、フィールド名自体でそれを行うことができないようですか?

助言がありますか!

4

1 に答える 1

0

mysql 5.1 以降、正規表現を使用できます。そのためのドキュメントページは次のとおりです。 http://dev.mysql.com/doc/refman/5.1/en/regexp.html

于 2012-08-15T17:02:36.047 に答える