JSON을 처리하기 위해 PHP 네이티브 함수를 사용하므로 @jeroen의 솔루션을 권하고 싶습니다.
그러나 물어 본 결과, 솔루션이 작동하지 않는 이유를 완전히 이해하지 못한다는 것을 알고 있습니다.
$trimmed = str_replace("\\n", "", $response);
그 이유는 "\ n을"새로운 라인 문자를 나타내는, 때 "
으로 이미"\\ n "은이 작업에 필요한 @의 B001로 의견에서 지적 \\ n "은 문자열"\ n "을 나타냅니다.
다음 코드를 시도하고 다음과 같은 결과가 유도 차이
print("-----");
print("\n");
print("-----");
print("\\n");
print("-----");
print("\"");
표시됩니다
-----
-----\n-----"
그 이유는 그 "\"문자의 모든 인스턴스 코드에서 제어 문자를 시작합니다. 이것에 대한 예는 개행을위한 "\ n", 캐리지 리턴을위한 "\ r", 탭을위한 "\ t", ""에 의해 정의 된 문자열 안의 -character에 대한 ""및 실제 백 슬래시에 대한 "\\" 캐릭터.
따라서 실제 문자열에 \ n이 포함되도록하려면 인터프리터에게 \로 구분 된 제어 문자가 아니라 \ 문자가 실제로 필요하다는 것을 사용자에게 알려줘야합니다. 이것은 실제 백 슬래시 문자열의 문자열 표현 인 이중 백 슬래시 "\\"를 사용하여 수행됩니다. 이것을 "탈출"이라고합니다.
귀하의 경우 $ response 변수에 실제 문자열이 있으므로 이스케이프 된 문자를 패턴으로 사용해야합니다.
마지막으로 "\ n"과 "\ n"의 차이점을 설명합니다. 문자열을 만들 수있는 PHP 두 가지 방법이 있습니다 :
$str1 = "hello \n world\n";
$str2 = 'hello \n world\n';
print($str1);
print($str2);
두 변수 문자열을 포함은 그러나 "-String가 포함 된 문자열을 해석해야한다는 PHP 인터프리터에 대한 나타내는 '-String 동안 그것이 당신에게 문자열을 제공 위의 예는 다음과 같은 출력에서 이에 대한 결과는 다음과 같습니다.
hello
world
hello \n world\n
이 다음 코드는 '\ n을'이후 \ n 인스턴스 당신의 문자열을 제거 것이라는 점을 보여줍니다 포함됩니다 제어 문자가 아닌 실제 문자열 :
\
$trimmed = str_replace('\n', "", $response);
의 이러한 해석 ":
$name = "Daniel";
$age = 18;
$sentence = "My Friend $name is $age years old.";
print($sentence);
및 초래
My Friend Daniel is 18 years old.
'않는 str_replace (-String 변수가 문자열에 삽입 할 수 있도록로 지금까지 간다" \ n ", ...'나를 위해 작동 –
'action_values'는 json 자체 인 것 같습니다. –
str_replace ("\\ n", ... 나를 위해 속임수를 써주었습니다. 감사합니다 .B001. 답변으로 표시하면 동의 함으로 표시합니다. – heyred