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,037

HOME > PHP > PHP Forum > ปริ้น PDF จากฐาน mySQL PHP มีเครื่องหมาย ? ติดมาแก้ไขยัไงดีครับ



 

ปริ้น PDF จากฐาน mySQL PHP มีเครื่องหมาย ? ติดมาแก้ไขยัไงดีครับ

 



Topic : 135334



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



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




ผมนำเข้าฐานข้อมูลจากไฟล์ excel เข้า mySQL
ปรากฏว่าตอนปริ้น PDF มีเครื่องหมาย ? ติดออกมาด้วย
ดูที่ไฟล์ excel ก็ไม่เห็นมี ?
เกิดจากอะไร และจะแก้ไขยังไงดีครับ
1



Tag : PHP









ประวัติการแก้ไข
2020-06-24 19:28:37
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2020-06-24 19:27:55 By : ajsudkedt View : 1229 Reply : 17
 

 

No. 1



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



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

Quote:
ดูที่ไฟล์ excel ก็ไม่เห็นมี ?


กำหนด collation, charset ใน MySQL ถูกหรือเปล่า มี ? ใน table หรือไม่
ลอง echo ตัวแปรที่มี ? ในข้อความก่อนออก pdf ดูว่าได้ผลเหมือนกันหรือไม่






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-24 19:59:09 By : PhrayaDev
 


 

No. 2



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



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


2
collation ที่ผมกำหนดไว้คือ utf8_unicode_ci ครับ

3
collation ที่ผมกำหนดไว้คือ utf8_unicode_ci ครับ

4
ใน 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
 

 

No. 3



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



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


บางอย่างดูด้วยตาเปล่ามันก็ไม่เห็นหรอก

copy ข้อความดูในเว็บนี้ https://www.soscisurvey.de/tools/view-chars.php
มันจะแสดงว่ามีตัวอักษรล่องหนอยู่หรือไม่
หรือลองเว็บอื่นๆก็ได้ หา google เอาคำว่า show invisible characters
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-25 09:21:37 By : mr.v
 


 

No. 4



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



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

Quote:
ส่วนการ ลอง echo ตัวแปรที่มี ?
ทำยังไงหรือครับ


หมายถึง echo ใน php ครับ
ใส่ comment บรรทัดที่ออก pdf ก่อน

echo $oj_re['std_housework'] . "<br><br>reveal all:<br>";
echo json_encode($oj_re['std_housework']);

แล้วนำผลลัพธ์มาวิเคราะห์ หาอักขระที่แทรกในข้อความ
จากนั้นใช้ str_replace() ก่อนออก pdf


ประวัติการแก้ไข
2020-06-25 11:52:09
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-25 11:48:56 By : PhrayaDev
 


 

No. 5



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



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


1

เจอข้อความนี้ครับ
แล้วจะเอาออกยังไงครับ
คือจะเขียน 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
 


 

No. 6



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



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


ต้องดูว่าแหล่งที่มาเอาข้อมูลมาจากไหน เพราะถ้าพิมพ์เองคงไม่มีแบบนี้ พวกอักขระเหล่านี้มักออกจากโปรแกรมอื่นๆ เช่น word, office program, pdf, หรืออะไรก็ตามที่มันชอบแทรกแซงข้อมูล.

การลบออกก็ต้องดูว่าควรจะแก้ที่แหล่งข้อมูลดีกว่าไหม?

ถ้ามันต้องเอามาจากเอกสารเหล่านี้แล้วพิมพ์เองไม่ได้
ก็ตรวจดูประเภทข้อมูลว่าควรมีตัวอักษรอะไร เช่น a-z A-Z 0-9 ภาษาไทยเลขไทย อะไรแบบนี้ ก็เขียนคำสั่ง preg_replace ที่ไม่ใช่อักขระเหล่านี้ออกไป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-25 19:08:14 By : mr.v
 


 

No. 7



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



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


หรือเอาเฉพาะอักขระเหล่านี้ออกไป

หาดูจากเว็บที่ให้ไปว่าตัวล่องหนมันคืออักขระอะไร ซึ่งมักจะขึ้นต้นด้วย u+
แล้วเอาไปหา google ว่า u+xxxx คืออะไร แล้วเอา php preg_replace เอาออกไปให้หมด.


https://www.fileformat.info/info/unicode/char/200b/index.htm
Quote:
Unicode Character 'ZERO WIDTH SPACE' (U+200B)


https://stackoverflow.com/questions/11305797/remove-zero-width-space-characters-from-a-javascript-string
[\u200B-\u200D\uFEFF]

[\x{200B}-\x{200D}]


ประวัติการแก้ไข
2020-06-26 11:01:41
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-25 19:26:47 By : mr.v
 


 

No. 8



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



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

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
 


 

No. 9



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



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


4

2

ลองปรับ code ตามที่ท่านแนะนำแล้ว
ข้อความที่ซ่อนยังไม่หายครับ

หรือผมทำอะไรผิดพลาดไปไหมครับ


ประวัติการแก้ไข
2020-06-26 07:00:00
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-26 06:59:19 By : ajsudkedt
 


 

No. 10



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



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


มันไม่หายก็เพราะอักขระที่ 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
 


 

No. 11



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



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

ตอบความคิดเห็นที่ : 9 เขียนโดย : ajsudkedt เมื่อวันที่ 2020-06-26 06:59:19
รายละเอียดของการตอบ ::
str_replace_php7

str_replace ใน PHP 5- จัดการกับ unicode ได้ยังไม่ดี
และ Unicode codepoint escape มีใน PHP 7.0
https://www.php.net/manual/en/migration70.new-features.php#migration70.new-features.unicode-codepoint-escape-syntax

ถ้าไม่สะดวกอัปเป็น PHP 7+ ลอง

Code (PHP)
$stdHW = json_decode(str_replace("\u200b", " ", json_encode($oj_re['std_housework']))); // ใช้เทคนิคการเข้าและถอดรหัส json


หรือ

Code (PHP)
$stdHW = preg_replace("/\xE2\x80\x8B/", " ", $oj_re['std_housework']); // RegEx


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-26 12:02:32 By : PhrayaDev
 


 

No. 12



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



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


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);


ใช้คำสั่งนี้ แล้วข้อความ ทั้งที่ซ่อนและไม่ซ่อนหายไปทั้งหมดเลยครับ

1
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-27 11:24:12 By : ajsudkedt
 


 

No. 13



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



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


ผมใช้ php ตัวนี้ครับ
2

หรือว่าต้องหา php7 มาลงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-27 11:27:32 By : ajsudkedt
 


 

No. 14



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



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

สงสัยจะมาราธี...เบื่อ 285 แล้ว ขอ 100 นะครับคราวนี้

ตอบความคิดเห็นที่ : 13 เขียนโดย : ajsudkedt เมื่อวันที่ 2020-06-27 11:27:32
รายละเอียดของการตอบ ::
ยังไม่แนะนำให้ลง 7 ครับ...เดี๋ยวตามไม่ทัน

phpMyAdmin จะแสดง Internal PHP Version
ซึ่งคนละ version กับ PHP ที่รันบน อาปัก

วิธีเช็ค
https://www.wikihow.com/Check-PHP-Version


ตอบความคิดเห็นที่ : 12 เขียนโดย : ajsudkedt เมื่อวันที่ 2020-06-27 11:24:12
รายละเอียดของการตอบ ::
ลองสร้างไฟล์ php ขึ้นมาใหม่ หรือลองในไฟล์เดิมโดยคอมเมนต์บรรทัดหลังจาก
$oj_re = ...; ทั้งหมด ด้วย /* comment on debug purpose will go here */

...แล้วลองด้วยวลีให้เห็นผล

Code (PHP)
echo json_encode($oj_re['std_housework']) . '<br><br>'; 
print(json_decode(str_replace("\u200b", " ", json_encode($oj_re['std_housework']))));


นำผลลัพธ์ที่ได้มากล่าวกล
แลศึกนี้จะรู้ราว



ประวัติการแก้ไข
2020-06-27 13:08:41
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-27 13:07:42 By : PhrayaDev
 


 

No. 15



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



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


ตอบความคิดเห็นที่ : 12 เขียนโดย : ajsudkedt เมื่อวันที่ 2020-06-27 11:24:12
รายละเอียดของการตอบ ::
ดูโค้ดล่าสุดที่ผมเขียนไว้นะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-27 18:37:13 By : mr.v
 


 

No. 16



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



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


ใน ascii
20 คือ วรรค(32)
0B คือ tab

ก็ต้องดูว่าต้นฉบับ เขียนโปรแกรมเก็บข้อมูลยังไง ถีงเอามันมารวมอยู่ใน text ได้
ลองไปดู script ใน excel ดุว่า export data ออกมาแบบไหน

จำเป็นต้องใช้ trim ก่อนไหม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-27 19:15:02 By : Chaidhanan
 


 

No. 17



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



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


ตอนนี้แก้ปัญหาได้แล้วครับ
โดยใช้สูตรใน excel
=SUBSTITUTE(A2,"​","")
ลบข้อความที่ซ่อนครับ
ขอบพระคุณสำหรับคำแนะนำทุก ๆ ท่านครับ
ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-30 09:13:12 By : ajsudkedt
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปริ้น PDF จากฐาน mySQL PHP มีเครื่องหมาย ? ติดมาแก้ไขยัไงดีครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่