<p>제목: PHP를 사용하여 PostgreSQL 데이터베이스에서 데이터를 가져올 때 줄 바꿈 문자가 누락되었습니다<br />텍스트:<br />PHP를 사용하여 PostgreSQL 데이터베이스에서 데이터를 가져오는 동안 문제가 발생했습니다. 내 데이터베이스의 데이터를 보기 위해 Navicat을 사용하고 있는데 다음과 같이 데이터에 새 줄(n)이 명확하게 표시됩니다. </p><p><code></code><
<pre class="brush:php;toolbar: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 = '포스트그레스';
$pass = '123456';
$dsn = "pgsql:호스트=$host;port=5432;dbname=$db;옵션='--client_encoding=UTF8'";
$선택 = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES =>
PDO::ATTR_STRINGIFY_FETCHES =>
];
$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를 찾았습니다: " .
}
if ($LFPos !== false) {
echo "다음 위치에서 LF를 찾았습니다: " .
}
if ($CRPos !== false) {
echo "다음 위치에서 CR을 찾았습니다: " .
}
if ($CRLFPos === false && $LFPos === false && $CRPos === false) {
echo "응답 내용에서 줄 바꿈을 찾을 수 없습니다.";
}
}
<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에 대해 어느 정도 알고 있지만 이 문제에 대한 해결책을 찾지 못했습니다. 누군가가 이 문제를 해결하는 데 도움을 줄 수 있기를 바랍니다.
혼란을 드려 죄송합니다. 내가 제공한 PHP 코드는 192.168.1.92의 PostgreSQL 데이터베이스에 연결되지만 Navicat에서 보고 있는 데이터베이스는 192.168.1.93에 있습니다. 192.168.1.93의 데이터베이스에는 개행 문자가 포함되어 있지만 192.168.1.92의 데이터베이스에는 포함되어 있지 않습니다. 이 차이로 인해 내가 직면한 문제가 발생했습니다. 혼란을 드린 점 깊이 사과드립니다.