หัวข้อ: เขียนยังไงให้แปลง string การเคาะคานวรรคหลายๆครั้งให้เหลือ 1 ครั้งได้ครับ เริ่มหัวข้อโดย: okgofun ที่ 28 กันยายน 2007, 03:17:19 เขียนยังไงให้แปลง string การเคาะคานวรรคหลายๆครั้งให้เหลือ 1 ครั้งได้ครับ
อย่างเช่น $str = "สวัสดี สบายดีใหม ทำอะไรกันอยู่ เหงาใหม อืมมมๆๆๆๆ " ; ใช้ regular expression ทำยังไงให้ตัดช่องมากๆพวกนั้นให้เหลือเพียงช่องเดียว มีวิธีการใหมครับ ??? หัวข้อ: Re: เขียนยังไงให้แปลง string การเคาะคานวรรคหลาũ เริ่มหัวข้อโดย: Kazamatsuri ที่ 28 กันยายน 2007, 03:27:35 ereg_replace("\s+", " ", $str);
หรือ preg_replace("\s+", " ", $str); ปล. ไม่แน่ใจว่าใช้่ /\s+ รึเปล่านะครับ รอผู้เชี่ยวชาญท่านอื่นมายืนยันล่ะกัน :P หัวข้อ: Re: เขียนยังไงให้แปลง string การเคาะคานวรรคหลายๆครั้งให้เหลือ 1 ครั้งได้ครับ เริ่มหัวข้อโดย: kennn ที่ 28 กันยายน 2007, 09:57:33 $New_Str=Trim($str);
หัวข้อ: Re: เขียนยังไงให้แปลง string การเคาะคานวรรคหลายๆครั้งให้เหลือ 1 ครั้งได้ครับ เริ่มหัวข้อโดย: แอร๊ยยยๆๆๆ ที่ 28 กันยายน 2007, 10:30:44 ความรู้ใหม่(เพราะปกติไม่ค่อยสนใจทำแบบนี้ แต่รู้ไว้ก้อดี :D)
หัวข้อ: Re: เขียนยังไงให้แปลง string การเคาะคานวรรคหลายๆครั้งให้เหลือ 1 ครั้งได้ครับ เริ่มหัวข้อโดย: okgofun ที่ 28 กันยายน 2007, 15:52:56 ใช้ trim ได้เหรอครับ มันจะตัดแค่ช่องว่างท้าย string ไม่ใช่เหรอ แต่อันนี้มันเป็นการเคาะให้เป็นช่องว่างมากๆๆๆๆๆๆ ระหว่างข้อความ แต่เริ่มต้นกับสิ้นสุดข้อความมันไม่ใช่ช่องว่างหนะครับ
หัวข้อ: Re: เขียนยังไงให้แปลง string การเคาะคานวรรคหลายๆครั้งให้เหลือ 1 ครั้งได้ครับ เริ่มหัวข้อโดย: kennn ที่ 28 กันยายน 2007, 18:24:14 โอ้วว .. sorry ครับ ไม่เป็นไรเอาใหม่ ลองของคุณ Kazamatsuri ไม่ได้ใช่มะครับ
งั้นเอาของผมไปลอง ดูดิจะปราบได้มัย หุหุหุ $New_str=eregi_replace(" ", "", $str); $New_str=eregi_replace(chr(13), "", $New_str); ถ้ายังไม่ได้ลองใส่อันนี้ไปอีก 1 บรรทัด $New_str=eregi_replace(chr(10), "", $New_str); echo $New_str; chr(10) กับ chr(13) ตัวนี้ไม่แน่ใจครับเป็นค่าของปุ่มไหน chr(10) รู้สึกจะเป็นตัวขึ้นบรรทัดใหม่ เทียบได้กับ \n ส่วน chr(13) ตัวนี้น่าจะเป็นการ Enter หรือไม่ก้อการ Tab ไม่ยืนยันนะครับ เพราะจำไม่ได้แล้ว ยังไงลองดูนะครับ หัวข้อ: Re: เขียนยังไงให้แปลง string การเคาะคานวรรคหลายๆครั้งให้เหลือ 1 ครั้งได้ครับ เริ่มหัวข้อโดย: EThaiZone ที่ 04 ตุลาคม 2007, 18:43:57 โอ้วว .. sorry ครับ ไม่เป็นไรเอาใหม่ ลองของคุณ Kazamatsuri ไม่ได้ใช่มะครับ งั้นเอาของผมไปลอง ดูดิจะปราบได้มัย หุหุหุ $New_str=eregi_replace(" ", "", $str); $New_str=eregi_replace(chr(13), "", $New_str); ถ้ายังไม่ได้ลองใส่อันนี้ไปอีก 1 บรรทัด $New_str=eregi_replace(chr(10), "", $New_str); echo $New_str; chr(10) กับ chr(13) ตัวนี้ไม่แน่ใจครับเป็นค่าของปุ่มไหน chr(10) รู้สึกจะเป็นตัวขึ้นบรรทัดใหม่ เทียบได้กับ \n ส่วน chr(13) ตัวนี้น่าจะเป็นการ Enter หรือไม่ก้อการ Tab ไม่ยืนยันนะครับ เพราะจำไม่ได้แล้ว ยังไงลองดูนะครับ แง้ว จขกท. เขาต้องการทำให้เว้นบรรคเยอะๆ เหลือแค่ 1 อันอะ ereg_replace("\s+", " ", $str); หรือ preg_replace("\s+", " ", $str); ปล. ไม่แน่ใจว่าใช้่ /\s+ รึเปล่านะครับ รอผู้เชี่ยวชาญท่านอื่นมายืนยันล่ะกัน :P ereg_replace("\s+", " ", $str); ถูกแล้วครับ preg_replace("#\s+#", " ", $str); ต้องมีตัวลิมิตปิดหน้าหลังอะครับ ใช้ # หรือ / ก็ได้ แต่ต้องปิดหัวท้าย (เฉพาะสำหรับตระกูลคำสั่ง preg ครับ) |