ปริ้น PDF จากฐาน mySQL PHP มีเครื่องหมาย ? ติดมาแก้ไขยัไงดีครับ
collation ที่ผมกำหนดไว้คือ utf8_unicode_ci ครับ
collation ที่ผมกำหนดไว้คือ utf8_unicode_ci ครับ
ใน excel ที่ผมดู ก็ไม่เห็นมีเครื่องหมาย ? ครับ
เครื่องหมาย ? จะมีเฉพาะบางคนครับ
ข้อมูลที่ได้มาจาก google form ครับ
ส่วนการ ลอง echo ตัวแปรที่มี ?
ทำยังไงหรือครับ
$pdf->Ln(7);
$pdf->SetFont("TH Sarabun New","",16);
$cellWidth = $pdf->GetStringWidth($oj_re['std_housework']);
$pdf->Cell($cellWidth + 132, -180, $oj_re['std_housework'], 0, 0, 0, 0);
ประวัติการแก้ไข 2020-06-25 05:02:59
Date :
2020-06-25 04:56:11
By :
ajsudkedt
บางอย่างดูด้วยตาเปล่ามันก็ไม่เห็นหรอก
copy ข้อความดูในเว็บนี้ https://www.soscisurvey.de/tools/view-chars.php
มันจะแสดงว่ามีตัวอักษรล่องหนอยู่หรือไม่
หรือลองเว็บอื่นๆก็ได้ หา google เอาคำว่า show invisible characters
Date :
2020-06-25 09:21:37
By :
mr.v
เจอข้อความนี้ครับ
แล้วจะเอาออกยังไงครับ
คือจะเขียน code เต็ม ๆ เพื่อลบออกยังไงครับ
$pdf->Ln(7);
$pdf->SetFont("TH Sarabun New","",16);
$cellWidth = $pdf->GetStringWidth($oj_re['std_housework']);
$pdf->Cell($cellWidth + 132, -180, $oj_re['std_housework'], 0, 0, 0, 0);
ประวัติการแก้ไข 2020-06-25 19:01:55
Date :
2020-06-25 18:59:00
By :
ajsudkedt
ต้องดูว่าแหล่งที่มาเอาข้อมูลมาจากไหน เพราะถ้าพิมพ์เองคงไม่มีแบบนี้ พวกอักขระเหล่านี้มักออกจากโปรแกรมอื่นๆ เช่น word, office program, pdf, หรืออะไรก็ตามที่มันชอบแทรกแซงข้อมูล.
การลบออกก็ต้องดูว่าควรจะแก้ที่แหล่งข้อมูลดีกว่าไหม?
ถ้ามันต้องเอามาจากเอกสารเหล่านี้แล้วพิมพ์เองไม่ได้
ก็ตรวจดูประเภทข้อมูลว่าควรมีตัวอักษรอะไร เช่น a-z A-Z 0-9 ภาษาไทยเลขไทย อะไรแบบนี้ ก็เขียนคำสั่ง preg_replace ที่ไม่ใช่อักขระเหล่านี้ออกไป
Date :
2020-06-25 19:08:14
By :
mr.v
Code (PHP)
$stdHW = str_replace("\xE2\x80\x8B", "", $oj_re['std_housework']);
$pdf->Ln(7);
$pdf->SetFont("TH Sarabun New","",16);
$cellWidth = $pdf->GetStringWidth($stdHW);
$pdf->Cell($cellWidth + 132, -180, $stdHW, 0, 0, 0, 0);
มีแค่ zwsp(ตัวตัดคำ) ตัวเดียว ไม่ต้องใช้ RegEx
หรือ
Code (VBA)
Sub deleteNothing()
Dim rLook As Range
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction
For Each r In ActiveSheet.UsedRange
If Len(r.Value) = 0 And wf.CountA(r) = 1 Then
If rLook Is Nothing Then
Set rLook = r
Else
Set rLook = Union(rLook, r)
End If
End If
Next r
If rLook Is Nothing Then
Else
rLook.Clear
End If
End Sub
by Gary's Student
ประวัติการแก้ไข 2020-06-25 22:56:42
Date :
2020-06-25 22:52:05
By :
PhrayaDev
ลองปรับ code ตามที่ท่านแนะนำแล้ว
ข้อความที่ซ่อนยังไม่หายครับ
หรือผมทำอะไรผิดพลาดไปไหมครับ
ประวัติการแก้ไข 2020-06-26 07:00:00
Date :
2020-06-26 06:59:19
By :
ajsudkedt
มันไม่หายก็เพราะอักขระที่ replace มันไม่ตรงไงล่ะ
ที่ผมบอกให้ preg_replace pattern ตัวอย่างข้างบนได้ลองหรือยังครับ? เพราะนั่นคือตรงเป๊ะ และมันจะรองรับอักขระล่องหนอื่นๆที่อาจพบได้อีกในอนาคตเพียงแต่ใส่เพิ่มลงไป และวิธีใส่เพิ่มผมก็บอกไปหมดแล้วได้อ่านหรือเปล่า?
Code (PHP)
$string = preg_replace('/[\x{200B}-\x{200D}]/u', '', $string);
ประวัติการแก้ไข 2020-06-26 10:55:56 2020-06-26 10:58:16 2020-06-26 11:01:16 2020-06-26 11:11:17
Date :
2020-06-26 10:54:10
By :
mr.v
Code (PHP)
$stdHW = json_decode(str_replace("\u200b", " ", json_encode($oj_re['std_housework']))); // ใช้เทคนิคการเข้าและถอดรหัส json
$pdf->Ln(7);
$pdf->SetFont("TH Sarabun New","",16);
$cellWidth = $pdf->GetStringWidth($stdHW);
$pdf->Cell($cellWidth + 132, -180, $stdHW, 0, 0, 0, 0);
ใช้คำสั่งนี้ แล้วข้อความ ทั้งที่ซ่อนและไม่ซ่อนหายไปทั้งหมดเลยครับ
Date :
2020-06-27 11:24:12
By :
ajsudkedt
ผมใช้ php ตัวนี้ครับ
หรือว่าต้องหา php7 มาลงครับ
Date :
2020-06-27 11:27:32
By :
ajsudkedt
ใน ascii
20 คือ วรรค(32)
0B คือ tab
ก็ต้องดูว่าต้นฉบับ เขียนโปรแกรมเก็บข้อมูลยังไง ถีงเอามันมารวมอยู่ใน text ได้
ลองไปดู script ใน excel ดุว่า export data ออกมาแบบไหน
จำเป็นต้องใช้ trim ก่อนไหม
Date :
2020-06-27 19:15:02
By :
Chaidhanan
ตอนนี้แก้ปัญหาได้แล้วครับ
โดยใช้สูตรใน excel
=SUBSTITUTE(A2,"","")
ลบข้อความที่ซ่อนครับ
ขอบพระคุณสำหรับคำแนะนำทุก ๆ ท่านครับ
ขอบคุณครับ
Date :
2020-06-30 09:13:12
By :
ajsudkedt
Load balance : Server 02