gt;
gt;< /p>
<pre class="ブラシ:php;ツールバー:false;">addr=1
アドレス=2
アドレス=3
アドレス=4
アドレス=5
アドレス=6
j=6
[rs485] コミッド=1
コミッド=1
[rs485] ボーレート=115200
bdrate=115200
...</pre>
<p>しかし、PHP を使用してこのデータを取得すると、改行が失われるようです。データを取得するために使用している PHP コードは次のとおりです。 </p>
<pre class="lang-php prettyprint-override"><code>$host = '192.168.1.92';
$db = 'GneMaster';
$user = 'postgres';
$pass = '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::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false、
PDO::ATTR_STRINGIFY_FETCHES => false、
];
$pdo = 新しい PDO($dsn, $user, $pass, $opt);
$id = '648c0d5dae53ac34094ede6d';
$sql = "stationcmd WHERE id = :idから応答コンテンツを選択します";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_STR);
$stmt->execute();
while ($row = $stmt->fetch())
{
echo "改行をチェックしています: n";
$CRLFPos = strpos($row['responsecontent'], "rn");
$LFPos = strpos($row['responsecontent'], "n");
$CRPos = strpos($row['responsecontent'], "r");
if ($CRLFPos !== false) {
echo "CRLF が位置で見つかりました: " . $CRLFPos . "n";
}
if ($LFPos !== false) {
echo "LF が位置で見つかりました: " . $LFPos . "n";
}
if ($CRPos !== false) {
echo "CR が位置で見つかりました: " . $CRPos . "n";
}
if ($CRLFPos === false && $LFPos === false && $CRPos === false) {
echo "responsecontentn に改行が見つかりません";
}
}
</code></pre>
<p>以下に示すように、この PHP スクリプトの出力には改行が含まれません。 </p>
<pre class="brush:php;toolbar:false;">addr=1addr=2addr=3addr=4addr=5addr=6j=6[rs485] comid=1comid=1[rs485] baudrate=115200bdrate=115200.. .</pre>
<p>PHP を使用してデータを取得すると改行が失われるのはなぜですか?また改行を保持するにはどうすればよいですか? <br /><br />Navicat で見られるように、PHP を使用して PostgreSQL データベースからデータをフェッチするときに、元の改行を保持できるようにしたいと考えています。私が理解しているところによると、データベースから文字列を取得するときは、改行を含むすべての文字が保持されるはずです。 <br /><br />私が試したアプローチは、データベースから直接データを取得して出力することでした。ただし、結果の出力には改行が含まれません。また、PHP で改行文字 (n、r、rn) を探してみましたが、これらの文字はデータ内に見つかりません。 <br /><br />私が期待しているのは、PHP を使用してデータを取得して出力すると、Navicat の場合と同じように見えることです。つまり、データには改行が含まれている必要があります。ただし、実際の結果は、受信したデータに改行が含まれていません。 <br /><br />PHP と PostgreSQL に関するドキュメントも確認しましたが、この問題に関連する情報は見つかりませんでした。 Stack Overflow やその他の関連フォーラムを検索しましたが、同様の問題や解決策は見つかりませんでした。 <br /><br />PHP でデータをフェッチするときに元の改行を保持する方法を探しています。 PHP と PostgreSQL についてはある程度の知識がありますが、この問題の解決策は見つかりませんでした。誰かがこの問題の解決を手伝ってくれることを願っています。 </p>
混乱させてしまい申し訳ありません。私が提供した PHP コードは 192.168.1.92 で PostgreSQL データベースに接続しますが、Navicat で表示しているデータベースは 192.168.1.93 です。 192.168.1.93 のデータベースには改行が含まれていますが、192.168.1.92 のデータベースには改行が含まれていません。この違いが私が遭遇した問題の原因でした。混乱を招いてしまい誠に申し訳ございません。