PHP를 사용하여 PostgreSQL 데이터베이스에서 데이터를 가져올 때 개행 문자가 누락되었습니다.
P粉696146205
P粉696146205 2023-08-06 13:44:42
0
1
542
<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에 대해 어느 정도 알고 있지만 이 문제에 대한 해결책을 찾지 못했습니다. 누군가가 이 문제를 해결하는 데 도움을 줄 수 있기를 바랍니다.


P粉696146205
P粉696146205

모든 응답(1)
P粉309989673

혼란을 드려 죄송합니다. 내가 제공한 PHP 코드는 192.168.1.92의 PostgreSQL 데이터베이스에 연결되지만 Navicat에서 보고 있는 데이터베이스는 192.168.1.93에 있습니다. 192.168.1.93의 데이터베이스에는 개행 문자가 포함되어 있지만 192.168.1.92의 데이터베이스에는 포함되어 있지 않습니다. 이 차이로 인해 내가 직면한 문제가 발생했습니다. 혼란을 드린 점 깊이 사과드립니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!