ใช้ preg_replace เพื่อลบตัวอักษรขึ้นบรรทัดใหม่ ในแถวของตารางเท่านั้น

เจอปัญหาว่าตอนส่งไลน์จากตารางแล้วมันมีบรรทัดว่างเกิดขึ้นเต็มเลย (เกิดจากการขึ้นบรรทัดใหม่ของ HTML) เลยต้องเอาตัวอักษรขึ้นบรรทัดใหม่ภายในแถวออก (<tr>.....</tr>) ด้วยความช่วยเหลือของ AI เลยได้โค้ดนี้มา
<?php
// ตัวอย่างข้อความ HTML ที่มีตารางและข้อความอื่นๆ
$htmlContent = "
<div>
    <p>This is a paragraph.\nAnother line in the same paragraph.</p>
    <table>
        <tr>
            <td>Row 1\nData 1</td>\n\n
            \t\t<td>Row 1\nData 2</td>
        </tr>
        <tr>
            <td>Row 2\nData 1</td>
            <td>Row 2\nData 2</td>
        </tr>
    </table>
    <p>Another paragraph with a newline\ncharacter.</p>
</div>";

// ใช้ preg_replace เพื่อจับคู่เฉพาะใน <tr> แล้วลบ \n ออก
$cleanedHtmlContent = preg_replace_callback(
    '/<tr\b[^>]*>(.*?)<\/tr>/s',
    function ($matches) {
        return preg_replace('/[\r\n\t]+/', '', $matches[0]);
    },
    $htmlContent
);

// แสดงผลลัพธ์
echo $cleanedHtmlContent;
?>
ผู้เขียน goragod โพสต์เมื่อ 10 มิ.ย. 2567 เปิดดู 617 ป้ายกำกับ PHP
^