<?php echo ($i % 6 == 5) ? 'style=\"margin-right:0px\"' : ''; ?>
보기 포트에 style = ""이 인쇄되었습니다.PHP 기본 연결 문제?
업데이트 : 문자열 안에있을 때 왜 큰 따옴표를 이스케이프 할 필요가 없습니까? 큰 따옴표는 작은 따옴표 안에 있으면 문자열로 간주되지 않으므로? 사전에
감사합니다, MEM은
<?php echo ($i % 6 == 5) ? 'style=\"margin-right:0px\"' : ''; ?>
보기 포트에 style = ""이 인쇄되었습니다.PHP 기본 연결 문제?
업데이트 : 문자열 안에있을 때 왜 큰 따옴표를 이스케이프 할 필요가 없습니까? 큰 따옴표는 작은 따옴표 안에 있으면 문자열로 간주되지 않으므로? 사전에
감사합니다, MEM은
에 관한 단일 인용 문자열 :문자열 안에있을 때 왜 큰 따옴표를 이스케이프 할 필요가 없습니까? 작은 따옴표 안에 있으면 큰 따옴표를 다른 문자열로 사용하지 않으므로 문자열을 사용하지 않으므로?
가 (\), 리터럴 따옴표를 지정 백 슬래시로 이스케이프합니다. 리터럴 백 슬래시를 지정하려면 두 번 (\\)을 사용합니다. 다른 모든 백 슬래시 인스턴스는 리터럴 백 슬래시으로 처리됩니다. 즉, \ r 또는 \ n과 같은 다른 이스케이프 시퀀스가 특별한 의미가 아닌 지정된대로 출력됩니다.
맞아, style = \ "margin-right : 0px \"가 아닌 style = ""을 출력하므로, 이것은 그의 문제가 아닙니다. – typeoneerror
@Typeoneerror, 예, 첫 번째 질문에 대해서는 대답하지 않습니다. [글쎄, 실제로는 첫 번째 질문이 없습니다]. – Matthew
브라우저에서 (보기 소스를 통해조차도) 브라우저에서 xml/html 파서가 필터링되어 'style = \ "margin-right : 0px \"'에 잘못된 속성 값을 버리는 것으로 의심됩니다. 'style = ""'만을 남겨 둡니다. – Lee
당신은 문자열이 불필요 안에 이렇게 큰 따옴표를 "
을 탈출, 그 문자열을 작은 따옴표를 '
을 사용했다. 이것을 'style="margin-right:0px"'
으로 바꾸면 잘 작동합니다.
PHP가 문자열과 따옴표를 어떻게 처리하는지 설명하려면 '
과 "
의 차이점을 알아두면 도움이됩니다. '
으로 캡슐화 된 문자열은 항상있는 그대로 표시됩니다. 문자열 내 아무 것도 이스케이프 문자 (예 : \n
개행 또는 이스케이프 된 따옴표는 이스케이프 된 작은 따옴표 \'
제외)을 포함하여 파싱되지 않습니다. 반대로 "
에 캡슐화 된 문자열이 파싱되므로 이스케이프 문자가 있으면 올바르게 표시되고 문자열에 변수가 있으면 입력됩니다. PHP 아무것도 탈출 문자열을 검색 할 필요가 없습니다 때문에 예를 들어,
// Set name variable to my name
$name = "nhinkle";
// Echo hello name with single quotes
echo 'hello {$name}';
// The result will be "hello {$name}"
// Echo hello name with double quotes
echo "hello {$name}";
// The result will be "hello nhinkle"
그것은 단지 문자열의 끝을 찾을 필요가, 작은 따옴표를 사용하는 처리 능력이 덜 걸립니다. 그러나 문자열 내부의 내용을 구문 분석해야하는 경우 큰 따옴표를 사용해야합니다.
@nhinkie - 감사합니다. 그것은 내가 오랫동안 그리워했던 아주 명백한 설명이었습니다. 건배! ;) – MEM
작은 따옴표 안에 큰 따옴표를 이스케이프 처리 할 필요가 없습니다.
<?php echo ($i % 6 == 5) ? 'style="margin-right:0px"' : ''; ?>
는 당신은 작은 따옴표 또는 큰 따옴표 안에 큰 따옴표 안에 작은 따옴표를 이스케이프해야합니다. 작은 따옴표로 묶은 문자열에 작은 따옴표를 쓰려면 그 작은 따옴표로 문자열을 끝내십시오.
$foo = 'a'b';
PHP는 의미 b
및 종료되지 않습니다 문자열 ';
의 시작 다음에 문자열 a
으로이 문제를보고; 잘못된 구문입니다.
$foo = 'a\'b';
이
올바르게 문자열a'b
로 분석된다.
의 의미를 이스케이프했습니다. 견적은 일반적으로이 시점에 있습니다.
작은 따옴표 안에 큰 따옴표를 사용하면 이러한 모호성이 없습니다. 작은 따옴표로 묶인 문자열 내의 큰 따옴표는 문자열을 종료하지 않으며 이스케이프해야하는 특별한 의미가 없습니다. 백 슬래시를 포함하면 백 슬래시가 그대로 사용됩니다.
$foo = 'a"b'; // a"b
$foo = 'a\"b'; // a\"b
출력을 보는 방법이 문제라고 생각합니다. 출력이 style=\"…\"
이면 이스케이프 된 큰 따옴표로 인해 출력을보고있는 환경에서 잘못된 구문이 발생할 수 있습니다.
더 많은 코드를 볼 수 있습니까? 백 슬래시는 중요하지 않습니다. 슬래시가있는 경우에도 style = \ "margin-right : 0px \"가 아닌 style = ""을보아야합니다. – typeoneerror
우연히 할 수 있겠습니까? style = " php echo ($ i % 6 == 5)? 'style = \"margin-right : 0px \ "': '';?>" – typeoneerror
어디를보고있는가? 결과? 원시 산출물? 브라우저? 브라우저의 DOM 관리자? – deceze