2011-01-25 12 views
2

現在、小さなWebアプリケーションを変更しています。このWebアプリケーションを使用すると、ユーザーはカテゴリを入力/指定することができます。私は、データベースにはスペースや特殊文字を含むカテゴリがたくさんあることに気付きました。例えば、ケーキ&カップケーキのようなものです。スペースと特殊文字を含むURLのベストプラクティス

フロントエンドでは、データベースにURLリンクの形式ですべてのユーザー定義カテゴリが表示されます。ユーザーはこれらのカテゴリをクリックすると、そのカテゴリの内容をさらに見ることができます。

フロントエンドのカテゴリリンクは、rawurlencode関数を使用してエンコードされ、次のようになります。

./show.php?category=<?php echo rawurlencode($e['category']); ?> 

とバックエンドに、関数がURLをGETし、それが照会のためにデータベースに送信される前にそれをデコードします。

$category = rawurldecode(htmlspecialchars_decode($category)); 

それはうまく動作しますが、それは多少「最後の分」と「純粋ではない」ようです。

URLの特殊文字やスペースのPHPのベストプラクティスは何ですか?

ありがとうございます。

答えて

2

「スラッグ」方法を使用することをお勧めします。あなたは弦を「痛めつける」ことができ、URLのスラグを使用することができます。

http://sourcecookbook.com/en/recipes/8/function-to-slugify-strings-in-php

あなたはスラグのデータベースに列を追加する必要がありますが、その後、あなたは簡単にURLにユーザー入力フィールドを表し、それらを読みやすくすることができます。 "function-to-slugify-strings-in-php"は、おそらくもともと「PHPで文字列をスラッグする機能」のようなものでした。

+0

こんにちはxyld、入力いただきありがとうございます。私が間違っていると私を修正して、私たちはスラグ文字列のデータベースに新しい列を追加し、リンクのテキストとして既存のカテゴリ列の値を使用してURL値として使用します。良い解決策や検索エンジンのように思えます。しかし、私はまだそれがURL書き換えでshow.phpとして最もよく使われると思います。category =ケーキやカップケーキはやや洗練されていません。しかし、素晴らしい提案に感謝し、非常に感謝します。 :) –

+0

もっと良い解決策を見つけましたか? – dlamotte

関連する問題