Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > สอบถามต่อยอด : จากกระทู้ [แจก] ฟังก์ชั่น str-split(), strlen(), substr() สำหรับตัวอักษรแบบ UTF-8 และ ภาษาไทย (ไม่นับวรรณยุกต์และสระบนล่าง)



 

สอบถามต่อยอด : จากกระทู้ [แจก] ฟังก์ชั่น str-split(), strlen(), substr() สำหรับตัวอักษรแบบ UTF-8 และ ภาษาไทย (ไม่นับวรรณยุกต์และสระบนล่าง)

 



Topic : 121797



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์




จากกระทู้
-ฟังก์ชั่น str-split(), strlen(), substr() สำหรับตัวอักษรแบบ UTF-8 และ ภาษาไทย (ไม่นับวรรณยุกต์และสระบนล่าง) -

ผมก็ลองกำหนดตัวแปร และลองตัดคำตามที่กำหนด ตาม code

$a = "ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียนในกลุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5";

echo "getStrLenTH : ".getStrLenTH($a)."<hr>";
//อยากจะทดสอบตัดคำตั้งแต่ ตำแหน่ง 0 ถึง 50 เปลี่ยนไปถึง 57 ในส่วนนี่ผลออกตามปกติ ได้ตามต้องการ
 for($d=50;$d<=57;$d++){ 
    echo "ตัดค่าตรงตำแหน่งd = $d : ".getSubStrTH($a,0, $d);
    echo "<br/>";
//ขยับตำแหน่ง d ไป 1 ตำแหน่ง กำหนดค่าเป็น t
    $t = $d+1 ;
//จากนั้นผมก็ต้องการตัดคำหลังจากค่า d ไปจนถึงค่าสุดท้าย แต่แทนที่ตำแหน่งมันจะเริ่มตัดต่อจากเดิม มันกับไม่ได้ตามที่คิด
    echo "ตัดคำหลังตำแหน่ง d+1 = ".$t;
    echo "  : ".getSubStrTH($a,$t, getStrLenTH($a))."<hr>";
      }


ผลลัพธ์จาก code ด้านบน
getStrLenTH : 126 -------------------------------------------------- ตัดค่าตรงตำแหน่งd = 50 : ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียน ตัดคำหลังตำแหน่ง d+1 = 51 : ียนในกลุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5 -------------------------------------------------- ตัดค่าตรงตำแหน่งd = 51 : ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียนใ ตัดคำหลังตำแหน่ง d+1 = 52 : ยนในกลุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5 -------------------------------------------------- ตัดค่าตรงตำแหน่งd = 52 : ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียนใน ตัดคำหลังตำแหน่ง d+1 = 53 : นในกลุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5 -------------------------------------------------- ตัดค่าตรงตำแหน่งd = 53 : ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียนในก ตัดคำหลังตำแหน่ง d+1 = 54 : ในกลุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5 -------------------------------------------------- ตัดค่าตรงตำแหน่งd = 54 : ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียนในกล ตัดคำหลังตำแหน่ง d+1 = 55 : นกลุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5 -------------------------------------------------- ตัดค่าตรงตำแหน่งd = 55 : ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียนในกลุ่ม ตัดคำหลังตำแหน่ง d+1 = 56 : กลุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5 -------------------------------------------------- ตัดค่าตรงตำแหน่งd = 56 : ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียนในกลุ่ม ตัดคำหลังตำแหน่ง d+1 = 57 : ลุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5 -------------------------------------------------- ตัดค่าตรงตำแหน่งd = 57 : ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียนในกลุ่ม ต ตัดคำหลังตำแหน่ง d+1 = 58 : ุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5



##เป็นลักษณะการกำหนดข้อความที่จะส่งไปสร้างไฟล์ pdf ให้ user เลือกใช้ข้อมูล
จากผลลัพธ์ user จะเลือกใช้ d ที่ 50, 55 และ 56 ได้จะทำให้ไฟล์ pdf ที่สร้างออกมาไม่ตกบรรทัด
แต่การตัดคำของ ตัวแปรชุดหลังมันไม่ได้ค่าต่อเนื่อง
- ตรง d ที่ 50 ข้อความชุดหลังต้องเริ่มด้วย : ในกลุ่ม ตำบลมาบยางพร แต่ผลที่ได้ ียนในกลุ่ม ตำบลมาบยางพร
- ตรง d ที่ 55 ข้อความชุดหลังต้องเริ่มด้วย : ตำบลมาบยางพร แต่ผลที่ได้ กลุ่ม ตำบลมาบยางพร
- ตรง d ที่ 55 ข้อความชุดหลังต้องเริ่มด้วย : ตำบลมาบยางพร แต่ผลที่ได้ ลุ่ม ตำบลมาบยางพร

รบกวนแนะนำหน่อยครับ ว่ามันน่าจะเกิดจากปัญหาส่วนไหน ขอบคุณครับ



Tag : PHP









ประวัติการแก้ไข
2016-03-07 16:42:01
2016-03-07 16:44:14
2016-03-07 16:46:38
2016-03-07 16:53:14
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-03-07 16:41:18 By : apisitp View : 1820 Reply : 9
 

 

No. 1



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


Code (PHP)
<?php
$a = "ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียนในกลุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5";
$sala='่'.'้'.'๊'.'๋'.'ิ'.'ี'.'ึ'.'ื'.'ุ'.'ู'.'ั'; // ตัวแปรสระ
preg_match_all( '/^(([^'.$sala.']['.$sala.']*){50}).*$/u', $a, $m);
print_r($m);

เพื่อจะได้ประโยชน์
งงคำถามน่ะครับ








ประวัติการแก้ไข
2016-03-07 17:43:46
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-07 17:24:44 By : Chaidhanan
 


 

No. 2



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-03-07 17:24:44
รายละเอียดของการตอบ ::
ขอยก ตย.ใหม่ อีกครั้งครับ


ผมมีข้อความ "เรารักประเทศไทย"
- ในบรรทัดที่ 1 ผมทำการตัดคำตามเงื่อนไขที่ผมต้องการ โดยใช้ฟังก์ชั่นดังกล่าว ตัดมาได้คำว่า "เรารัก"
- ในบรรทัดที่ 2 ผมก็จะเอาส่วนที่เหลือคือ คำว่า "ประเทศไทย" มาแสดงในบรรทัดที่ 2นี้

จากฟังก์ชั่นที่นำมาใช้
- บรรทัดแรกมันแสดงข้อความได้ตามที่เราตัดคำไม่มีปัญหาใดๆ : ผ่าน
*** แต่บรรทัดที่ 2 แทนที่มันจะแสดงข้อความว่า "ประเทศไทย" มันไม่เป็นตามนั้น
คำมันเลื่อนออกมา เป็น "กประเทศไทย" เป็นต้น

ก็เลยสงสัยว่ามันเป็นที่ส่วนไหนครับ หรือลูปอะไรผิดตรงไหนครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-07 19:17:47 By : apisitp
 

 

No. 3



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


คงต้องดูที่ความหมายของ element ของ function getSubStrTH( str , pos, len );
str = ข้อความหลัก
pos = ตำแหน่งเริ่มต้น นับสระด้วย
len = ความยาวที่ต้องการไม่นับสระ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-07 20:31:32 By : Chaidhanan
 


 

No. 4



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-07 22:07:17 By : apisitp
 


 

No. 5



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


ไม่ทราบว่าจะใช้โค๊ดนี้ทำอะไรเหรอครับ
ถ้าจะทำแค่ตัดคำให้เท่ากัน อย่าใช้เลยครับ อย่างคุณปลากริมที่ใน โพสบอกแหล่ะครับ

ใช้อันนี้อีกว่าเปลี่ยนเลข 50 ตามความยาวที่ต้องการเลยครับ
Code (PHP)
<?php
$block_length = 50;
$a = "ปัญหาและแนวทางการพัฒนาระบบเทคโนโลยีสารสนเทศของโรงเรียนในกลุ่ม ตำบลมาบยางพร อำเภอปลวกแดง สังกัดสำนักงานเขตพื้นที่การศึกษาประถมศึกษาระยอง เขต 5";
$sala='่'.'้'.'๊'.'๋'.'ิ'.'ี'.'ึ'.'ื'.'ุ'.'ู'.'ั'.'์'; // ตัวแปรสระบนล่าง
$b = preg_replace( '/(([^'.$sala.']['.$sala.']*){1,'.$block_length.'})/u',"$1<br>", $a);
$c = preg_replace('/([เแโไใ])(<br>)/u',"$2$1",$b);
$c = preg_replace('/([ก-ฮ])(<br>)([าะำ])/u',"$2$1$3",$c);
echo $c;



ประวัติการแก้ไข
2016-03-07 22:21:05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-07 22:19:36 By : Chaidhanan
 


 

No. 6



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ขอบคุณมากครับพี่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-07 22:33:55 By : apisitp
 


 

No. 7



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-08 09:12:44 By : mr.win
 


 

No. 8



โพสกระทู้ ( 1,095 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


กระทู้ดี ดันเข้าไว้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-08 13:20:19 By : compiak
 


 

No. 9



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-08 16:09:36 By : apisitp
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามต่อยอด : จากกระทู้ [แจก] ฟังก์ชั่น str-split(), strlen(), substr() สำหรับตัวอักษรแบบ UTF-8 และ ภาษาไทย (ไม่นับวรรณยุกต์และสระบนล่าง)
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่