カレッヂ |
質問者 あっくん
投稿日 12/12(木) 17:47:59
簡易データベースの検索で半角?を入れるとデフォルトの設定でもエラーになるのですが 改造でURLの追加と検索のマッチ処理を入れてみたのですがエラーになるし ?を$value =~ s/\?//g;をsearch.cgiに入れても駄目ですよね。どのようにすれば検索できるか どなたか、教授して下さい。 #URL(マッチ) if ($FORM{'URL'} ne '') { if ($URL =~ /$FORM{'URL'}/i) { ; } else { next; } } これだとよく、URLである***.asp?=1234と?が入ると検索できないみたいです。
プロバイダ参照: |
回答者 しあわせのツボ
[削除]
投稿日 12/16(月) 14:05:04
?だけでよいなら $FORM{'URL'} =~ tr/\?/\\\?/; でどうでしょう。 |
回答者 とほほ
[削除]
投稿日 2004/12/14(火) 23:45:59
こんにちは、初めまして とほほ と申します。こちらで質問するのは初めてです。礼を 失してましたらご勘弁ください。先ほど間違えてしあわせのツボ様にメールを送ってし まったようです、こちらに投稿するつもりでしたすみませんm(__)m > ?だけでよいなら > $FORM{'URL'} =~ tr/\?/\\\?/; > でどうでしょう。 これがどうも出来ません(^^; 色々試してみたのですが検索しません、デフォルトの状態で入力フォームに直接[ \? ] と入力して検索するときちんとヒットしますので何とかしたいのですが、、、。 --- $FORM{'URL'} =~ tr/\?/\\\?/; if ($FORM{'URL'} ne '') { if ($URL =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1- \xFE]{2})*$FORM{'URL'}/i) { ; } else { next; } } --- これではだめなのでしょうか? 他にも色々試してみたのですがやはりヒットしません、デフォルトの簡易データベース で実際にどのように $FORM{'URL'} =~ tr/\?/\\\?/; を使ったらよいのか教えていただ けませんでしょうかm(__)m 環境 自宅サーバー OS WindowsXPSP2 サーバー httpd perl ActivePerl5-5.8.0.806 |
回答者 しあわせのツボ
[削除]
投稿日 2004/12/15(水) 13:08:59
検証しながら書いてる訳ではないので、すみません。 案外、\\\?でなく\\?だった、というオチも結構あったりして…。 ところで、検索できないのは?だけですか? 他のメタ文字(+とか[とか)はどうですか? デフォルトの状態でエラーが出るなら、quotemetaをかけるのが手っ取り早いかもしれません。 |
回答者 とほほ
[削除]
投稿日 2004/12/16(木) 01:02:30
さっそくご回答いただきありがとうございます、大変感謝しております。 > 検証しながら書いてる訳ではないので、すみません。 > 案外、\\\?でなく\\?だった、というオチも結構あったりして…。 これは試してみましたがだめでした(^^; > ところで、検索できないのは?だけですか? 他のメタ文字(+とか[とか)はどう > ですか? > デフォルトの状態でエラーが出るなら、quotemetaをかけるのが手っ取り早いかも > しれません。 とりあえず、+と?はだめでした。(メタ文字にどういう種類があったのか覚えていな いのですみません(^^; ) それからデフォルトの状態では確かにエラーになりますが、私の改造版ではえらーで はなく「ご指定の条件では見当たりませんでした」となるのです。 でもしかも今私の改造簡易データベースで試してみたら ? だけを検索するとヒット するのです(T_T) 私もデータベースにあるURLでパラメーター付きのURL(http://xxx/xxx.cgi?xx=xx等) をヒットさせたいのですがこれがヒットしません。入力欄でこのURLの?の前に\をつ けるとヒットするのですが、、、、。 quotemeta ですね、さっそくネットを検索して意味を調べて利用してみます(^^ゞ どうもありがとうございましたm(__)m |
返信(回答)する
Web裏技 |