●半角スペース問題解決編
257 名前: ◆ H/tNiasOz2 2009/07/19(日) 22:25:54
><input type="text" name="rein" value=$line><br>
ここをvalue="$line"という風に"で括ったらスペースありでも行けそうな気がするのですが……無理でしょうか
258 名前: seren 2009/07/19(日) 22:39:43
258 名前: seren 2009/07/19(日) 22:39:43
できました!
辞書をスペースに直してアップしなおしました。
辞書をスペースに直してアップしなおしました。
ひとつ聞いていいですか?
なんで分かったの(^ω^;
てゆうかどういう仕組みw?
259 名前: seren 2009/07/19(日) 22:42:53
なんで分かったの(^ω^;
てゆうかどういう仕組みw?
259 名前: seren 2009/07/19(日) 22:42:53
metaタグのときといい、本当に助かりますわ(*゚ー゚)
260 名前: seren 2009/07/19(日) 22:54:20
260 名前: seren 2009/07/19(日) 22:54:20
んー、perlは文字列は"や'で括らなくてもいいとあったのでそうしてたけど、
括らないというのは"とも'とも違う結果になるようですね。
括らないというのは"とも'とも違う結果になるようですね。
文字列をそのまま扱うには、""で括るという本来的なやり方が安全ということはわかりました。
261 名前: ◆ H/tNiasOz2 2009/07/19(日) 23:17:34
261 名前: ◆ H/tNiasOz2 2009/07/19(日) 23:17:34
perlというかhtmlの問題ですなー
perlは書いたことないので分かりませんが、
htmlのタグの値はスペースを含む場合は""で括らないといけないのは知っていたので
262 名前: seren 2009/07/19(日) 23:33:50
htmlのタグの値はスペースを含む場合は""で括らないといけないのは知っていたので
262 名前: seren 2009/07/19(日) 23:33:50
あぁ分かったそういうことか。
これはあくまでPerlなんですよ。
print ENDがかかってるので、実際は
print ENDがかかってるので、実際は
print "<input type="text" name="rein" value=$line>";
なのね。
で、変数展開するのはPerlの仕事だと思ってるのね。
だからPerl側が空気読んでクォーテーションなくてもvalueに文字列を入れてくれると思ったの。
だからPerl側が空気読んでクォーテーションなくてもvalueに文字列を入れてくれると思ったの。
そうすると例えば$line="ern e yuuma"だとしたら、htmlとして書き出される情報は
<input type="text" name="rein" value=ern e yuuma>
となるのね。
<input type="text" name="rein" value=ern e yuuma>
となるのね。
この場合、htmlは"がなくても空気読んでvalue=ernのところまでは理解すると思うの。
だけど、その後のe yuumaはernの後にスペースがあるもんだからvalueではないと解釈する。
で、残ったe yuumaは解釈できない謎文字列としてスルーされ、エラーにはならない。
htmlはエラーになりにくい言語だから、こちらとしてはなんでernで切れてしまうのか分からない。
だけど、その後のe yuumaはernの後にスペースがあるもんだからvalueではないと解釈する。
で、残ったe yuumaは解釈できない謎文字列としてスルーされ、エラーにはならない。
htmlはエラーになりにくい言語だから、こちらとしてはなんでernで切れてしまうのか分からない。
そこでvalue="$line"にすることで、変数展開したときに
<input type="text" name="rein" value="ern e yuuma">
となり、正しく認識されることになると。
<input type="text" name="rein" value="ern e yuuma">
となり、正しく認識されることになると。
ようやく分かりました。
263 名前: xektan 2009/07/20(月) 00:00:47
263 名前: xektan 2009/07/20(月) 00:00:47
>htmlは"がなくても空気読んで
HTML の attribute は全て " " でくくるのが正式です。
HTML の attribute は全て " " でくくるのが正式です。
>htmlはエラーになりにくい言語だから
否。
ブラウザが頑張ってるだけ。
否。
ブラウザが頑張ってるだけ。
『正しいHTML4.0リファレンス&作法』
http://www.atmarkit.co.jp/fnetwork/bookreview/01forwebpro/webdes1.html#book5
必携書。私は早い時期にこれを読んで正しい書き方が身に付いた。
http://www.atmarkit.co.jp/fnetwork/bookreview/01forwebpro/webdes1.html#book5
必携書。私は早い時期にこれを読んで正しい書き方が身に付いた。
『CGI&Perlポケットリファレンス』
http://www.amazon.co.jp/dp/4774107557/
CGI の作り方ではなく Perl の辞書として重宝する。
264 名前: seren 2009/07/20(月) 06:55:09
http://www.amazon.co.jp/dp/4774107557/
CGI の作り方ではなく Perl の辞書として重宝する。
264 名前: seren 2009/07/20(月) 06:55:09
>ブラウザが頑張ってるだけ。
なるほど。ブラウザでしたか。
ということは何で見るかによって挙動が異なるわけですね。
ということは何で見るかによって挙動が異なるわけですね。