- เครดิต
- 287
- เพื่อน
- ทักทาย
- บล็อก
- อัลบั้ม
- โพสต์
- กระทู้
- แชร์
- สำคัญ
- สิทธิ์อ่าน
- 20
- จำนวนผู้ติดตาม
- จำนวนผู้กำลังติดตาม
- เพศ
- ไม่บอก
|
แก้ไขครั้งสุดท้ายโดย rokaisakkon เมื่อ 2011-3-22 16:56
แก้ไขครั้งสุดท้ายโดย rokaisakkon เมื่อ 2011-3-22 16:55
LinkOut ไม่รับเครื่องหมาย "+" (วิธีแก้ครับ ^^) X1 X1.5 X1.5RC
ปกติ php สงวน (reserved) เครื่องหมายบวกใว้ (+) plus sign
เราจึงไม่สามารถใช้มันได้ตรงๆ แต่เราสามารถ encode ไปเป็นอย่างอื่นก่อน
ยกตัวอย่าง ครับ
- "URL : www.ge-7.com/linkout.php?out=code++"
- $link = $_GET[out];
- echo $link;
- ผลที่ได้
- "URL : www.ge-7.com/linkout.php?out=code"
คัดลอกไปที่คลิปบอร์ด เครื่องหมาย + หายไปไหน ?
เรามาดูวิธีแก้ กันครับ
ไปาหา code การส่งค่ามา "linkout.php?out=XXXX"
- return '<a href="linkout.php?out='.$url.'" target="_blank">'.$text.'</a>';
คัดลอกไปที่คลิปบอร์ด เปลี่ยนเป็น
- $url = urlencode($url);
- return '<a href="linkout.php?out='.$url.'" target="_blank">'.$text.'</a>';
คัดลอกไปที่คลิปบอร์ด ผลที่ได้จากการใช้ urlencode เครื่องหมายบวกจะถูกเปลี่ยนเป็น %2B
^^ ขอให้ทำได้นะครับ
สำหรับ Discuz All ไฟล์นี้ครับ function_discuzcode.php
- function parseurl($url, $text) {
- if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|synacast){1}:\/\/|www\.)[^\["']+/i", trim($text), $matches)) {
- $url = $matches[0];
- $length = 65;
- if(strlen($url) > $length) {
- $text = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3));
- }
- return '<a href="linkout.php?out='.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" target="_blank">'.$text.'</a>';
- } else {
- $url = substr($url, 1);
- if(substr(strtolower($url), 0, 4) == 'www.') {
- $url = 'http://'.$url;
- }
- $url = urlencode($url);
- return '<a href="linkout.php?out='.$url.'" target="_blank">'.$text.'</a>';
- }
- }
คัดลอกไปที่คลิปบอร์ด ประยุกต์ กันเอง เด้อ ๆ
ขอได้รับ ความขอบคุณจากสมารถ ทดสอบได้จาก URL ด้านบนครับ
|
|
|
|
|
|
|