Membuat Baris Baru Lintas Platform Dengan PHP

Seperti kita ketahui untuk membuat baris baru pada HTML kita menggunakan tag <br>, namun bagaimana jika kita ingin membuat baris baru pada teks/tulisan yang kita simpan dalam bentuk file? tentu saja untuk kondisi ini kita tidak bisa menggunakan <br>, karena <br> hanya bisa diterjemahkan oleh browser, adapun solusinya  adalah menggunakan:

  • Special character n yang biasa digunakan pada unix dan mac os
  • Special character rn yang biasa digunakan pada windows
  • Special character r yang biasa digunakan  pada unix dan mac os
  • Built in PHP Constant  PHP_EOL
    Constant diatas akan otomatis memilik karakter line break yang akan digunakan (n atau rn) sesuai  sistem operasi yang digunakan oleh server
  • Enter

mari kita bahas lebih lanjut penggunaan tanda diatas. Misal kita akan membuat file baris_baru.log dengan script PHP yang jalankan  di server yang menggunakan sistem operasi linux:

<?php
$handle = fopen('baris_baru.log', 'w');
$str = 'Contoh membuat baris baru pada php untuk disimpan kedalam file:
1. Baris ini menggunakan n' . "n"  . ' untuk membuat baris baru
2. Baris ini menggunakan r' . "r"  . ' untuk membuat baris baru
3. Baris ini menggunakan rn' . "rn"  . ' untuk membuat baris baru
4. Baris ini menggunakan built in constant PHP_EOL' . PHP_EOL  . ' untuk membuat baris baru
5. Keempat contoh diatas terdapat tanda Enter';
fwrite ($handle, $str);
fclose ($handle);

ketika kita buka file baris_baru.log di windows menggunakan notepad, maka akan tampak seperti gambar berikut:

baris_baru_menggunakan_php

pada gambar  diatas terlihat bahwa hanya yang menggunakan rn yang menghasilkan baris baru, sedangkan lainnya tidak.

Jika  kita buka file tersebut di sistem operasi linux (Ubuntu) maka akan tampak seperti gambar berikut:

baris_baru_dengan_php_linux

pada gambar diatas terlihat bahwa semua karakter menghasilkan baris baru. Selanjutnya mari kita  anggap file baris_baru.log sebagai file csv, rename file menjadi baris_baru.csv, selanjutnya jika  file tersebut kita buka di Microsoft Excel, maka akan tampak seperti gambar berikut:

contoh_tampilan_di_excel

dari gambar diatas terlihat bahwa  semua karakter menghasilkan baris baru, yang berarti bahwa semua karakter dapat digunakan untuk membuat file .csv

Dari semua contoh diatas, dapat disimpukan bahwa:

  1. Di text editor tertentu seperti notepad, karakter  n tidak menghasilkan baris baru sehingga untuk membuat file yang sekiranya akan dibuka di notepad (misal file log), gunakan rn  sehingga akan tampak bagus baik  di windows maupun  di platform lain.
  2. Sebaiknya konsisten menggunakan salah satu karakter  yaitu n  atau rn  jika file yang dihasilkan tidak akan dibuka di notepad, misal file csv yang akan dibuka di Excel, penggunaan satu karakter tertentu secara konsisten akan memudahkan pekerjaan kita, misal ketika akan memecah teks  menjadi baris, contoh:
    <?php
    $str = file_get_contents('baris_baru.log');
    $split = explode("n", $str);
    echo '<pre>'; 
    print_r ($split);
    echo '<pre>';
    
    /**
    Array
    (
        [0] => Contoh membuat baris baru pada php untuk disimpan kedalam file:
        [1] => 1. Baris ini menggunakan n
        [2] =>  untuk membuat baris baru
        [3] => 2. Baris ini menggunakan r
     untuk membuat baris baru
        [4] => 3. Baris ini menggunakan rn
        [5] =>  untuk membuat baris baru
        [6] => 4. Baris ini menggunakan built in constant PHP_EOL
        [7] =>  untuk membuat baris baru
        [8] => 5. Keempat contoh diatas terdapat tanda Enter
    )
    */

    perhatikan baris 12 dan 13, terlihat bahwa penggunaan n akan menghasilkan element array baru. Pada contoh diatas baris 16 dan 18 juga terbentuk elemen array baru karena keduanya mengandung karakter n  (PHP_EOL menghasilkan rn)

  3. Constan PHP_EOL  akan menghasilkan karakter berubah ubah sesuai dengan sistem operasi yang digunakan oleh server, sehingga sebaiknya hanya  menggunakan constant  PHP_EOL  jika yakin bahwa file yang dihasilkan tidak digunakan lintas platform, karena disamping terjadi ketidak konsistenan karakter yang digunakan juga akan menyulitkan ketika akan memecah teks. Melanjutkan contoh sebelumnya, kita ganti n menjadi PHP_EOL:
    <?php
    $str   = file_get_contents('baris_baru.log');
    $split = explode(PHP_EOL, $str);
    
    echo '<pre>'; 
    print_r ($split);
    echo '<pre>';
    
    /**
    Array
    (
        [0] => Contoh membuat baris baru pada php untuk disimpan kedalam file:
        [1] => 1. Baris ini menggunakan n
     untuk membuat baris baru
        [2] => 2. Baris ini menggunakan r
     untuk membuat baris baru
        [3] => 3. Baris ini menggunakan rn
        [4] =>  untuk membuat baris baru
        [5] => 4. Baris ini menggunakan built in constant PHP_EOL
     untuk membuat baris baru
        [6] => 5. Keempat contoh diatas terdapat tanda Enter
    )
    */

    perhatikan baris 17 dan 18, terlihat bahwa hanya karakter rn yang akan menghasilkan element array baru, karena script explode  dijalankan di server Windows, sehingga PHP_EOL  diterjemahkan menjadi rn sedangkan kita membuat file baris_baru.txt di linux dimana PHP_EOL diterjemahkan sebagai n.

  4. Enter dapat menghasilkan baris baru di semua platform, namun hal tersebut tidak memungkinkan jika teks dibuat secara dinamis, selain itu juga akan menyulitkan jika ingin melakukan pemecahan teks, seperti pada contoh contoh sebelumnya.

Kesimpulan

Untuk membuat baris baru, terdapat perbedaan karakter yang digunakan yang disebabkan adanya perbedaan sistem operasi  yang digunakan oleh server, sehingga  pada kondisi tertentu, seperti pemecahan teks (menggunakan fungsi explode) akan sulit dilakukan. Untuk mengatasi hal tersebut sebaiknya konsisten menggunakan karakter tertentu yaitu rn yang kompatibel dengan semua platform dan mayoritas text editor atau n namun dengan kelemahan tidak dapat membuat baris baru jika dibuka dengan notepad.

Demikian sedikit pembahasan mengenai membuat baris baru lintas platform dengan  PHP, semoga bermanfaat.

Subscibe Now

Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com

Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun.

Silakan tinggalkan komentar

Newsletter

Jadilah yang pertama tahu berita terbaru dari Jagowebdev.com