Tag Archive replace

ขึ้นบรรทัดใหม่ใน textarea

ข้อมูลถูกเก็บไว้เป็น string ยาวๆ โดยแบ่งหัวข้อย่อยโดยใช้ @ นำหน้า ต้องการให้แสดงใน textarea โดยขึ้นบรรทัดใหม่ที่ละหัวข้อจะได้อ่านง่ายหน่อย

การเขียนให้ javascript จัดรูปแบบให้เขียนได้ในบรรทัดเดียว

string.split('\n').join('').split('@').join('\n@').replace(/^\s/, '');

ทดลอง หรือเขียนดูเอง ถ้า textarea id เท่ากับ detail จะเขียน code ง่ายๆได้เป็น

<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>jQuery: textarea newline</title>
    <link href="../vendor/twbs/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet" type="text/css">
</head>

<body>
    <h1>Textarea newline</h1>
    <form action="values.php" class="form-horizontal" id="formA" method="post">
        <div class="form-group">
            <label for="detail">Example textarea</label>
            <textarea class="form-control" id="detail" rows="10"></textarea>
        </div>
    </form>
    <div class="col-sm-12" id="resultA"></div>
    <script src="../vendor/components/jquery/jquery.min.js"></script>
    <script>
        $(document).ready(function () {
            let textarea = $('#detail');

            function format() {
                let temp = textarea.val().split('\n').join('').split('@').join('\n@').replace(/^\s/, '');
                textarea.val(temp);
            }

            format();
            textarea.on('change', function () {
                format();
            });
        });
    </script>
</body>

</html>

แก้เนื้อหาทั้งตาราง

content เขียนเนื่อหามาสวยงามในตัวเทส แต่เวลาขึ้นเว็บจริงภาพดันหายหมดเลย view code ดูใช้

 <img src-"http://localhost/barbei/assets/service-Tour.jpg"> 

งานเข้า มีหลายรายการไม่ใช่น้อยๆ แต่ยังดีที่มีรูปแบบการแก้ที่แน่นอนคือ เอา http://localhost/barbei/ ออกไป ทำได้ด้วยคำสั่ง sql ง่ายๆ ตามตัวอย่าง

UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis')
WHERE SomeOtherColumn LIKE '%PATTERN%'

ผมเก็บเนื้อหาไว้ในตาราง contents ส่วนเนื้อหาอยูใน field contentBody จะเขียน ได้

UPDATE `contents`
SET `contentBody ` = REPLACE (contentBody, ' http://localhost/barbei/ ', ' ')

เสร็จก่อนมาม่าสุกอีก เขียนด้วยความระมัดระวังนะครับ ของผมไม่มี where เพราะต้องการแทนที่ทั้งหมดแลยในครั้งเดียว ถ้าไม่แน่ใจทดลง select ข้อมูลก่อนดูว่าข้อมูลที่ออกมาทั้งหมดเป็นตัวที่จะแก้รึเปล่า

PHP เทมเพลต

วิธีติดต่อ user ดีที่สุดคือการส่งจดหมายข่าวบอกไปว่าเว็บเราอัพเดต มีอะไรน่าสนใจบ้าง แต่จะให้ส่งข้อความไปเหมือนๆ กันทุกๆ คน คงจะดูไม่น่าสนใจเท่าไหร ถ้ามีบางส่วนที่พิเศษไปสำหรับแต่ละคน เช่น แสดงชื่อของลูกค้า จะดูน่าสนใจขึ้นใช้ไหมครับ
ก่อนอื่นก็สร้างไฟล์ที่เป็นต้นแบบของจดหมายมาก่อนชื่อ templates.tmp.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>#title#</title>
</head>
<body bgcolor="#c00000">
#contents#
</body>
</html>

จากนั้นจะทดลองเปลี่ยนเนื้อหาจากต้นฉบับดู สร้างไฟล์ templates.php ตามตัวอย่าง

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>PHP template By Pitt Phunsanit</title>
</head>
<body>
<?php
$output = file_get_contents('templates.tmp.html');
$patternSearch = array('#title#', '#contents#');
$patternReplace = array('ทดลองเทมเพลต', 'แสดงเนื้อหาแล้วนะ');
$output = str_replace($patternSearch, $patternReplace, $output);
echo'<textarea cols="200" rows="40">',$output,'</textarea>';
?>
</body>
</html>

หลักการง่ายๆ คือแทนที่คำๆหนึ่ง ด้วยค่าจากตัวแปรอื่น ๆ ลองดัดแปลงใช้กับฟังก์ชั่นเมล์ดูนะครับ อาจจะเพิ่มให้มีไฟล์ต้นแบบหลายๆ แบบ