티스토리 뷰

반응형

PHP의 echo문은 문자열을 출력하는 데 사용됩니다. 이때 사용되는 문자는 문자열을 정의하는 데 사용되며, 이는 일반적으로 단일 따옴표('), 이중 따옴표("), 혹은 헤어독(Heredoc)과 노우독(Nowdoc) 구문을 사용합니다.

백틱(`) 문자는 PHP에서 다른 목적으로 사용됩니다. 이는 쉘 명령을 실행하는 데 사용되며, 백틱 안에 있는 내용이 쉘에 전달되고 실행된 후의 결과가 반환됩니다.

예를 들어, 다음과 같은 코드를 볼 수 있습니다:



$output = `ls -al`;
echo $output;​

이 코드는 서버의 쉘에서 ls -al 명령을 실행하고 그 결과를 $output에 저장한 후 출력합니다.
따라서 백틱() 문자는 echo` 문에서 직접적으로 사용되지 않지만, 쉘 명령의 실행 결과를 반환하는데 사용될 수 있습니다. 하지만 이것은 웹 애플리케이션에서 보안 문제를 일으킬 수 있으므로 신중하게 사용해야 합니다.
echo `<td class="custom-cell" style="font-size:12px;"> <a onclick="viewworkboard('` . $row['num'] . `','update');" style="cursor:pointer;" href="#">' . htmlspecialchars($formatted_date) . `</a> </td>`;

위의 문장은 php코드로서, a테그 안에 함수를 호출하고 문자열을 전달하려고 하는데, 따옴표, 이중따옴표가 결함되서 너무 어려운데 방법이 없을까?
PHP에서 HTML과 문자열을 결합하려면 따옴표와 이중 따옴표를 혼용해야 합니다.
이때는 문자열 내에서 이스케이프를 사용해야 할 수 있습니다.
문자열을 작성할 때는 따옴표와 이중 따옴표의 사용을 교대로 하거나 문자열 연결을 사용하는 것이 좋습니다.
그러나 PHP에서는 복잡한 문자열을 더 간결하게 작성할 수 있도록 Heredoc 또는 Nowdoc 구문을 제공합니다.
이들은 여러 줄에 걸쳐 문자열을 작성하는 데 유용하며, 따옴표나 이중 따옴표를 이스케이프 할 필요가 없습니다.
아래는 Heredoc을 사용한 예시입니다:
echo <<<HTML
<td class="custom-cell" style="font-size:12px;">
    <a onclick="viewworkboard('{$row['num']}','update');" style="cursor:pointer;" href="#">
        {htmlspecialchars($formatted_date)}
    </a> 
</td>
HTML;
위의 예시에서는 <<<HTML 과 HTML;
사이에 HTML 코드를 작성하였습니다. 이 방식은 따옴표를 이스케이프하지 않고도 변수를 문자열에 삽입할 수 있게 해줍니다. 이 구문에서 중요한 것은 종료 태그인 HTML; 앞에는 공백이나 탭이 없어야 하며, 바로 줄바꿈 문자가 와야 한다는 점입니다.

 

반응형
댓글