カレッヂ |
質問者 M.Y.
投稿日 2/1(木) 04:31:51
簡易データベースで、$URL に記入のあるときだけ、$HANDLE にリンクをつけたいのですが、 下記のように入れると、$URL に記入のないものまですべてリンクがついてしまいます。 if ($URL ne '') { $HANDLE = "<a href=\"$URL\" target=\"_back\">$HANDLE</a>"; } ↓こんな感じで・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ print "<CENTER><table width=100% align=center border=2 cellpadding=1 cellspacing=1><tr bgcolor=#330066>\n"; print "<th>店名</th>\n"; print "<th>お問合せ先</th>\n"; print "<th>所在地</th>\n"; print "</tr>\n"; foreach $data (@NEW) { ($d,$HANDLE,$TEL,$PREF,$URL) = split(/\,/,$data); if ($URL ne '') { $HANDLE = "<a href=\"$URL\" target=\"_back\">$HANDLE</a>"; } print "<tr>\n"; print "<td>$HANDLE</td>\n"; print "<td>$TEL</td>\n"; print "<td>$PREF</td>\n"; print "</tr>\n"; } print "</table></CENTER><p>\n"; ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ どこが間違っているのか、さっぱりわかりません・・・。 ご存知の方、教えてください。m(_ _)m |
回答者 しあわせのツボ
[削除]
投稿日 2/1(木) 11:25:49
1. if ($URL ne "") と、シングルクォートでなくダブルクォートにするだけで変わることがあります。 2. (たぶんこちらです) ファイルから1行を読み込んだ場合、末尾に\nがついていますので、取り除いてやって下さい。 |
質問者 M.Y.
[削除]
投稿日 2/3(土) 13:35:08
ありがとうございます。 取り除ける \n を全部取ってみても表示は同じでした。 (どの \n かわからなかったので・・・^^;) ↓に変えると、$URLに記入のあるものだけが、表示リンクされるので、今はこれでしのいでます。 if ($URL ne '') { $URL = "<a href=\"$URL\" target=\"_back\">$URL</a>"; } |
回答者 しあわせのツボ
[削除]
投稿日 2/3(土) 16:48:06
そうじゃないです。ソース上に見えている\nを外しても意味がありません。 ($d,$HANDLE,$TEL,$PREF,$URL) = split(/\,/,$data); の時点で、$dataの末尾に\nがあり、それがそのまま$URLに入る、ということです。 chomp $URL; として、$URLに入っている\nを取り除いて下さい。 |
質問者 M.Y.
[削除]
投稿日 2/3(土) 18:47:02
うまくいきました! いろいろ親切に教えていただいて、本当にとても助かりました。 ありがとうございました! |
返信(回答)する
Web裏技 |