YouTubeの動画をAPIを利用してDBに動画情報を蓄積し、

サイト上に表示させる仕組みを作っています。

表示する場合はURLにタイトル名をいれて、そのタイトルをGETして
マッチした動画が再生されるようにしました。



もしタイトルが「漫☆画太郎」だった場合、URLは

http://xxx.jp/漫☆画太郎

となり正常に表示されます。ところがタイトルが
「漫/画太郎」や「漫?画太郎」の時は

http://xxx.jp/漫/画太郎
↑階層が違ってしまう

http://xxx.jp/漫?画太郎
↑「画太郎」がパラメータと認識されてしまう

などからうまく表示できません。



そこでYoutubeから読み込む際に

$title = str_replace('&','&', $title);
$title = str_replace('/','/', $title);

などとして全角に変換しているのですが、他にも変換が必要な文字列があり
記述もあまりスマートではありません。またすべての文字列を半角→全角に
する方法もあると思いますが、実際に弊害がある文字列のみ変換したいと
思っております。

何か良い方法があればご教授お願い致します。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2009/07/17 15:10:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント60pt

そういう場合は、URLエンコードを使うのが定石です。Wikipediaで採られている方式です。

ブラウザやサーバによっては全角文字が含まれたURLを受け付けないので、すべてをURLエンコードすべきです。

id:gelgelgel

pahooさん

ご回答ありがとうございます。

なるほど確かにURLエンコードという言葉をどこかで聞いたような気がしました。

これから検証してみます。ありがとうございました!!

2009/07/10 15:57:06

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません