Mac 寫:而且,不留空白應該才是較正確的命名方法,通常都會加上 "_" 或 "-" 在字與字的中間
動感超人 寫:這樣才對
也就是在有空白的部分以
%20 取代空白。
是沒錯啦,檔案名稱不留空白才是較正確的命名方法。
問題是別人的網站上面放的檔案喜歡用空白字元,我們要連結的話就只能接受了。
至於將空白字元改為 %20 才能連結,並不是每一位 USER 都知道要這麼作....
而且我發現一件奇怪的事情, 2.0.6 不行,但是 2.0.3 可以??
我在我另一個 2.0.3 的論壇上測試,請看:
http://chage-aska.com/phpbb/viewtopic.php?t=821
我在這一篇文章打的內容就是
測試下載 ,
檔案名稱中間有空白字元,在不修改為 %20 的情況下,這個 URL 語法仍然生效,這才是我感到納悶的....
剛剛比對一下 2.0.3 和 2.0.6 的 bbcode.php ,URL 的部份的確有很多地方不同。
只是有一點想不通,為何 2.0.3 的 URL BBCode 允許檔案名稱有空白字元,
這樣的設計在 2.0.6 卻被拿掉了,是不是有什麼安全上的考量??
這是 2.0.3 的 bbcode.php (和 URL 有關的部份):
代碼: 選擇全部
// We do URLs in several different ways..
$bbcode_tpl['url1'] = str_replace('{URL}', '\\\1\\\2', $bbcode_tpl['url']);
$bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\\1\\\2', $bbcode_tpl['url1']);
$bbcode_tpl['url2'] = str_replace('{URL}', 'http://\\\1', $bbcode_tpl['url']);
$bbcode_tpl['url2'] = str_replace('{DESCRIPTION}', '\\\1', $bbcode_tpl['url2']);
$bbcode_tpl['url3'] = str_replace('{URL}', '\\\1\\\2', $bbcode_tpl['url']);
$bbcode_tpl['url3'] = str_replace('{DESCRIPTION}', '\\\\3', $bbcode_tpl['url3']);
$bbcode_tpl['url4'] = str_replace('{URL}', 'http://\\\1', $bbcode_tpl['url']);
$bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\\2', $bbcode_tpl['url4']);
// [url]xxxx://www.phpbb.com[/url] code..
// 此行修正:可包含中文字的超連結 modification by alang
$patterns[2] = "#\[url\]([a-z]+?://){1}(.*?)\[/url\]#si";
$replacements[2] = $bbcode_tpl['url1'];
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
// 此行修正:可包含中文字的超連結 modification by alang
$patterns[3] = "#\[url\](.*?)\[/url\]#si";
$replacements[3] = $bbcode_tpl['url2'];
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
// 此行修正:可包含中文字的超連結 modification by alang
$patterns[4] = "#\[url=([a-z]+?://){1}(.*?)\](.*?)\[/url\]#si";
$replacements[4] = $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
// 此行修正:可包含中文字的超連結 modification by alang
$patterns[5] = "#\[url=(.*?)\](.*?)\[/url\]#si";
$replacements[5] = $bbcode_tpl['url4'];
這是 2.0.6 的 bbcode.php (和 URL 有關的部份):
代碼: 選擇全部
// We do URLs in several different ways..
$bbcode_tpl['url1'] = str_replace('{URL}', '\\\1', $bbcode_tpl['url']);
$bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\\1', $bbcode_tpl['url1']);
$bbcode_tpl['url2'] = str_replace('{URL}', 'http://\\\1', $bbcode_tpl['url']);
$bbcode_tpl['url2'] = str_replace('{DESCRIPTION}', '\\\1', $bbcode_tpl['url2']);
$bbcode_tpl['url3'] = str_replace('{URL}', '\\\1', $bbcode_tpl['url']);
$bbcode_tpl['url3'] = str_replace('{DESCRIPTION}', '\\\2', $bbcode_tpl['url3']);
$bbcode_tpl['url4'] = str_replace('{URL}', 'http://\\\1', $bbcode_tpl['url']);
$bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\\3', $bbcode_tpl['url4']);
// matches a [url]xxxx://www.phpbb.com[/url] code..
$patterns[] = "#\[url\]([\w]+?://[^ "
\t<]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.[^ "
\t<]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[^ "
\t<]*?)\](.*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[^ "
\t<]*?)\](.*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url4'];