Rumah  >  Soal Jawab  >  teks badan

Tiada aksara baris baharu semasa mendapatkan data daripada pangkalan data PostgreSQL menggunakan PHP

<p>Tajuk: Tiada aksara baris baharu apabila mendapatkan data daripada pangkalan data PostgreSQL menggunakan PHP<br />Teks:<br />Saya menghadapi masalah semasa mendapatkan data daripada pangkalan data PostgreSQL menggunakan PHP. Saya menggunakan Navicat untuk melihat data dalam pangkalan data saya dan ia menunjukkan dengan jelas baris baharu (n) dalam data seperti ini: </p><p><code></code>< <pre class="brush:php;toolbar:false;">addr=1 addr=2 addr=3 addr=4 addr=5 addr=6 j=6 [rs485] komid=1 komid=1 [rs485] baudrate=115200 bdrate=115200 ...</pra> <p>Walau bagaimanapun, apabila saya menggunakan PHP untuk mendapatkan data ini, baris baharu kelihatan hilang. Berikut ialah kod PHP yang saya gunakan untuk mendapatkan data: </p> <pre class="lang-php prettyprint-override"><code>$host = '192.168.1.92'; $db = 'GneMaster'; $pengguna = 'postgres'; $lulus = '123456'; $dsn = "pgsql:host=$host;port=5432;dbname=$db;options='--client_encoding=UTF8'"; $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::ATTR_EMULATE_PREPARES => PDO::ATTR_STRINGIFY_FETCHES => ]; $pdo = PDO baharu($dsn, $user, $pass, $opt); $id = '648c0d5dae53ac34094ede6d'; $sql = "PILIH kandungan respons DARI stationcmd WHERE id = :id"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':id', $id, PDO::PARAM_STR); $stmt->execute(); manakala ($row = $stmt->fetch()) { echo "Menyemak pemisah baris: n"; $CRLFPos = strpos($row['responsecontent'], "rn"); $LFPos = strpos($row['responsecontent'], "n"); $CRPos = strpos($row['responsecontent'], "r"); jika ($CRLFPos !== palsu) { echo "CRLF ditemui pada kedudukan: " $CRLFPos . } jika ($LFPos !== palsu) { echo "LF ditemui pada kedudukan: " $LFPos . } jika ($CRPos !== palsu) { echo "CR ditemui pada kedudukan: " $CRPos . } jika ($CRLFPos === palsu && $LFPos === palsu && $CRPos === palsu) { echo "Tiada pemisah baris ditemui dalam responsecontentn"; } } </code></pre> <p>Output skrip PHP ini tidak mengandungi sebarang baris baharu, seperti yang ditunjukkan di bawah: </p> <pre class="brush:php;toolbar:false;">addr=1addr=2addr=3addr=4addr=5addr=6j=6[rs485] comid=1comid=1[rs485] baudrate=115200bdrate=115200.. .</pra> <p>Mengapa baris baharu hilang apabila saya mendapat data menggunakan PHP, dan bagaimana saya menyimpannya? <br /><br />Saya ingin dapat mengekalkan pemisah baris asal apabila mengambil data daripada pangkalan data PostgreSQL menggunakan PHP, seperti yang dilihat dalam Navicat.Daripada apa yang saya faham, apabila saya mendapat rentetan daripada pangkalan data, ia harus mengekalkan semua aksara, termasuk baris baharu. <br /><br />Pendekatan yang saya cuba ialah mendapatkan data terus daripada pangkalan data dan mengeluarkannya. Walau bagaimanapun, output yang terhasil tidak mengandungi sebarang baris baharu. Saya juga cuba mencari aksara baris baharu (n, r, rn) dalam PHP tetapi aksara ini tidak ditemui dalam data saya. <br /><br />Apa yang saya jangkakan ialah apabila saya mendapat dan mengeluarkan data menggunakan PHP, ia kelihatan sama seperti dalam Navicat, iaitu data harus mengandungi baris baharu. Walau bagaimanapun, keputusan sebenar ialah data yang saya terima tidak mengandungi baris baharu. <br /><br />Saya juga menyemak beberapa dokumentasi tentang PHP dan PostgreSQL, tetapi tidak menemui maklumat yang berkaitan dengan masalah ini. Saya mencari di Stack Overflow dan forum berkaitan lain tetapi tidak menemui masalah atau penyelesaian yang serupa. <br /><br />Saya sedang mencari cara untuk mengekalkan baris baharu asal apabila mengambil data dalam PHP. Saya mempunyai sedikit pengetahuan tentang PHP dan PostgreSQL tetapi tidak menemui penyelesaian untuk masalah ini. Saya harap seseorang boleh membantu saya menyelesaikan masalah ini. </p><p><br /></p>
P粉696146205P粉696146205461 hari yang lalu628

membalas semua(1)saya akan balas

  • P粉309989673

    P粉3099896732023-08-07 09:27:46

    Maaf atas kekeliruan. Kod PHP yang saya berikan bersambung ke pangkalan data PostgreSQL di 192.168.1.92, tetapi pangkalan data yang saya lihat dalam Navicat adalah di 192.168.1.93. Pangkalan data di 192.168.1.93 mengandungi baris baharu, manakala pangkalan data di 192.168.1.92 tidak. Perbezaan ini menyebabkan masalah yang saya hadapi. Saya amat memohon maaf atas sebarang kekeliruan yang berlaku.

    balas
    0
  • Batalbalas