<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>PHPINFO</title>
    <link>https://phpinfo.tistory.com/</link>
    <description>PHP 개발관련 정보를 공유합니다. </description>
    <language>ko</language>
    <pubDate>Sat, 13 Jun 2026 18:09:12 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>PHPINFO</managingEditor>
    <image>
      <title>PHPINFO</title>
      <url>https://tistory1.daumcdn.net/tistory/16017/attach/603128aad46948758bfe5596b7fad6ef</url>
      <link>https://phpinfo.tistory.com</link>
    </image>
    <item>
      <title>PHP 에러 핸들링 완벽 가이드: 효과적인 오류 처리 방법</title>
      <link>https://phpinfo.tistory.com/entry/PHP-%EC%97%90%EB%9F%AC-%ED%95%B8%EB%93%A4%EB%A7%81-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%ED%9A%A8%EA%B3%BC%EC%A0%81%EC%9D%B8-%EC%98%A4%EB%A5%98-%EC%B2%98%EB%A6%AC-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;PHP_에러핸들링.jpg&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;2048&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oGbnj/btsMCa3G8eD/x8qsxOHKBrkXeBhgkeNYB1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oGbnj/btsMCa3G8eD/x8qsxOHKBrkXeBhgkeNYB1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oGbnj/btsMCa3G8eD/x8qsxOHKBrkXeBhgkeNYB1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoGbnj%2FbtsMCa3G8eD%2Fx8qsxOHKBrkXeBhgkeNYB1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2048&quot; height=&quot;2048&quot; data-filename=&quot;PHP_에러핸들링.jpg&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;2048&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;3:1-3:141&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;3:1-3:141&quot; data-ke-size=&quot;size16&quot;&gt;안녕하세요! 오늘은 PHP 개발에서 필수적인 '에러 핸들링'에 대해 쉽고 자세하게 알아보겠습니다. 웹 개발을 하다 보면 예상치 못한 오류가 발생하기 마련인데요, 이러한 오류를 어떻게 처리하느냐에 따라 사용자 경험과 애플리케이션 안정성이 크게 달라집니다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:23&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:23&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 에러 핸들링, 왜 중요할까요?&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;7:1-11:0&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;7:1-7:60&quot;&gt;&lt;b&gt;사용자 경험 향상:&lt;/b&gt; 친절한 오류 메시지로 사용자의 혼란을 줄이고, 문제 해결을 도울 수 있습니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;8:1-8:70&quot;&gt;&lt;b&gt;애플리케이션 안정성 확보:&lt;/b&gt; 오류 발생 시 프로그램이 멈추는 것을 방지하고, 지속적인 서비스 제공을 가능하게 합니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;9:1-9:57&quot;&gt;&lt;b&gt;디버깅 효율성 증대:&lt;/b&gt; 오류 원인을 빠르게 파악하고 수정하여 개발 시간을 단축할 수 있습니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;10:1-11:0&quot;&gt;&lt;b&gt;보안 강화:&lt;/b&gt; 민감한 정보가 노출되는 것을 방지하고, 악의적인 공격을 차단할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos=&quot;12:1-12:23&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. PHP 에러 종류와 처리 방법&lt;/b&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;14:1-14:43&quot; data-ke-size=&quot;size16&quot;&gt;PHP에는 다양한 종류의 에러가 있으며, 각각 다른 방식으로 처리해야 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;16:1-31:0&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;16:1-19:39&quot;&gt;&lt;b&gt;구문 에러 (Syntax Errors):&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;17:5-19:39&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;17:5-17:33&quot;&gt;코드 작성 시 문법 규칙을 어겼을 때 발생합니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;18:5-18:27&quot;&gt;예시: 세미콜론 누락, 괄호 불일치 등&lt;/li&gt;
&lt;li data-sourcepos=&quot;19:5-19:39&quot;&gt;처리 방법: 에러 메시지를 확인하고 문법 오류를 수정합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-sourcepos=&quot;20:1-23:39&quot;&gt;&lt;b&gt;경고 (Warnings):&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;21:5-23:39&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;21:5-21:44&quot;&gt;프로그램 실행에는 문제가 없지만, 잠재적인 오류 가능성을 나타냅니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;22:5-22:39&quot;&gt;예시: 정의되지 않은 변수 사용, 잘못된 함수 인자 전달 등&lt;/li&gt;
&lt;li data-sourcepos=&quot;23:5-23:39&quot;&gt;처리 방법: 경고 메시지를 확인하고 코드 수정을 고려합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-sourcepos=&quot;24:1-27:47&quot;&gt;&lt;b&gt;치명적 에러 (Fatal Errors):&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;25:5-27:47&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;25:5-25:31&quot;&gt;프로그램 실행을 중단시키는 심각한 오류입니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;26:5-26:33&quot;&gt;예시: 정의되지 않은 함수 호출, 메모리 부족 등&lt;/li&gt;
&lt;li data-sourcepos=&quot;27:5-27:47&quot;&gt;처리 방법: 예외 처리 또는 오류 로깅을 통해 원인을 파악하고 수정합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-sourcepos=&quot;28:1-31:0&quot;&gt;&lt;b&gt;예외 (Exceptions):&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;29:5-31:0&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;29:5-29:36&quot;&gt;프로그램 실행 중 발생하는 예외적인 상황을 나타냅니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;30:5-31:0&quot;&gt;try...catch 구문을 사용하여 예외처리.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos=&quot;32:1-32:31&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. try...catch 구문으로 예외 처리하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;34:1-34:35&quot; data-ke-size=&quot;size16&quot;&gt;예외 처리는 try...catch 구문을 사용하여 이루어집니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;try {
    // 예외가 발생할 수 있는 코드
    $result = 10 / 0; // 0으로 나누는 오류 발생
    echo $result;
} catch (Exception $e) {
    // 예외 발생 시 실행되는 코드
    echo &quot;오류가 발생했습니다: &quot; . $e-&amp;gt;getMessage();
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;47:1-50:0&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;47:1-47:38&quot;&gt;try 블록: 예외가 발생할 가능성이 있는 코드를 작성합니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;48:1-48:51&quot;&gt;catch 블록: try 블록에서 예외가 발생했을 때 실행되는 코드를 작성합니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;49:1-50:0&quot;&gt;$e-&amp;gt;getMessage(): 발생한 예외 메시지를 가져오는 메서드입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos=&quot;51:1-51:20&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 사용자 정의 에러 핸들러&lt;/b&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;53:1-53:57&quot; data-ke-size=&quot;size16&quot;&gt;set_error_handler() 함수를 사용하여 사용자 정의 에러 핸들러를 설정할 수 있습니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot;&gt;&lt;code&gt;function customErrorHandler($errno, $errstr, $errfile, $errline) {
    echo &quot;&amp;lt;b&amp;gt;오류:&amp;lt;/b&amp;gt; [$errno] $errstr&amp;lt;br&amp;gt;&quot;;
    echo &quot;파일: $errfile&amp;lt;br&amp;gt;&quot;;
    echo &quot;라인: $errline&amp;lt;br&amp;gt;&quot;;
    return true; // 기본 에러 핸들러 실행 방지
}

set_error_handler(&quot;customErrorHandler&quot;);

// 의도적으로 오류 발생
echo $undefinedVariable;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-sourcepos=&quot;69:1-69:12&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;69:1-69:12&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. 오류 로깅&lt;/b&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;71:1-71:46&quot; data-ke-size=&quot;size16&quot;&gt;오류를 파일이나 데이터베이스에 기록하여 추후 분석 및 디버깅에 활용할 수 있습니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;error_log(&quot;오류 발생: &quot; . $e-&amp;gt;getMessage(), 3, &quot;/path/to/error.log&quot;);
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;77:1-80:0&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;77:1-77:17&quot;&gt;첫 번째 인자: 오류 메시지&lt;/li&gt;
&lt;li data-sourcepos=&quot;78:1-78:30&quot;&gt;두 번째 인자: 오류 로그 유형 (3은 파일 로깅)&lt;/li&gt;
&lt;li data-sourcepos=&quot;79:1-80:0&quot;&gt;세 번째 인자: 오류 로그 파일 경로&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos=&quot;81:1-81:24&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6. 효과적인 에러 핸들링을 위한 팁&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;83:1-88:0&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;83:1-83:45&quot;&gt;구체적인 오류 메시지를 제공하여 사용자가 문제를 이해하고 해결하도록 돕습니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;84:1-84:37&quot;&gt;오류 로깅을 통해 오류 발생 시점을 추적하고 원인을 분석합니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;85:1-85:30&quot;&gt;예외 처리를 사용하여 프로그램의 안정성을 높입니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;86:1-86:62&quot;&gt;개발환경에서는 오류를 화면에 표시하여 디버깅을 용이하게 하고 운영환경에서는 로그파일에 기록하는것이 좋습니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;87:1-88:0&quot;&gt;오류 처리 코드를 재사용하여 효율성을 높입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos=&quot;89:1-89:71&quot; data-ke-size=&quot;size16&quot;&gt;이 가이드를 통해 PHP 에러 핸들링에 대한 이해를 높이고, 더 안정적인 웹 애플리케이션을 개발하는 데 도움이 되기를 바랍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>PHP</category>
      <category>php</category>
      <author>PHPINFO</author>
      <guid isPermaLink="true">https://phpinfo.tistory.com/12</guid>
      <comments>https://phpinfo.tistory.com/entry/PHP-%EC%97%90%EB%9F%AC-%ED%95%B8%EB%93%A4%EB%A7%81-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%ED%9A%A8%EA%B3%BC%EC%A0%81%EC%9D%B8-%EC%98%A4%EB%A5%98-%EC%B2%98%EB%A6%AC-%EB%B0%A9%EB%B2%95#entry12comment</comments>
      <pubDate>Thu, 6 Mar 2025 21:31:56 +0900</pubDate>
    </item>
    <item>
      <title>WSL2를 사용하여 Node.js 개발 환경 설치</title>
      <link>https://phpinfo.tistory.com/entry/WSL2%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-Nodejs-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%B9%98</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;WSL2 설치&lt;/h3&gt;
&lt;p&gt;WSL은 Windows Subsystem for Linux의 약자로 윈도우 환경에서 가상머신 없이 리눅스 배포판 버전을 설치하여 운영할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;현재 Windows 10 환경에 Ubuntu 20.04 LTS 를 설치한 상태입니다. 설치 과정은 여기에서는 생략하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;nvm, node.js 및 npm 설치&lt;/h3&gt;
&lt;p&gt;node.js 는 버전이 빠르게 바뀌기 때문에 버전 관리자를 사용하는 것이 좋습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;프로젝트를 여러개 진행한다면 여러 버전 간 전환해서 사용해야 하는 경우도 있는데, nvm (Node Version Manager)을 이용해 여러 버전의 Node.js 를 설치할 수 있습니다. 그리고 npm (&lt;span style=&quot;color: #333333;&quot;&gt;Node Pacackage Manager)은 이름 그대로 노드 패키지 관리자로 여러 모듈들을 관리하기 위한 용도로 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1606839094045&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# cURL 설치
sudo apt install curl 

# nvm 설치
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

# 참고, 설치 후 아래 커맨드로 확인이 안될 경우, 터미널을 닫고 다시 열면 됩니다.

# nvm 버전 확인
nvm --version

# 현재 설치된 노드 버전 나열
nvm ls

# 최신 Node.js 릴리스 설치
nvm install node

# 최신 Node.js LTS 설치 (권장)
nvm install node --lts

# 설치된 노드 버전 확인
nvm ls

# 참고 
node --version 명령을 사용하여 Node.js가 설치되어 있는지 여부 및 현재 기본 버전을 확인합니다. 
그리고 npm --version 명령을 사용하여 npm이 설치되어 있는지 확인합니다
(which node 또는 which npm 명령을 사용하여 기본 버전에 사용되는 경로도 확인 가능).

프로젝트에 사용할 Node.js 버전을 변경하려면 
새 프로젝트 디렉터리 mkdir NodeTest를 만들고 
cd NodeTest 디렉터리로 들어간 다음, 
nvm use node를 입력하여 현재 버전으로 전환하거나 
nvm use --lts를 입력하여 LTS 버전으로 전환합니다. 
nvm use v8.2.1처럼 설치한 버전의 특정 번호를 사용할 수도 있습니다. 
(사용 가능한 모든 Node.js 버전을 나열하려면 nvm ls-remote 명령을 사용합니다.)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;VS Code (&lt;span&gt;Visual Studio Code)&lt;/span&gt; 및 원격 WSL 확장 설치&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;먼저 VS Code 부터 설치합니다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://code.visualstudio.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;code.visualstudio.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1606839954515&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Visual Studio Code - Code Editing. Redefined&quot; data-og-description=&quot;Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.&amp;nbsp; Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.&quot; data-og-host=&quot;code.visualstudio.com&quot; data-og-source-url=&quot;https://code.visualstudio.com/&quot; data-og-url=&quot;https://code.visualstudio.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/XKvnJ/hyIrp2xm95/jdbWhJyHBEtgM6vK17x4K1/img.png?width=1012&amp;amp;height=506&amp;amp;face=0_0_1012_506&quot;&gt;&lt;a href=&quot;https://code.visualstudio.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://code.visualstudio.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/XKvnJ/hyIrp2xm95/jdbWhJyHBEtgM6vK17x4K1/img.png?width=1012&amp;amp;height=506&amp;amp;face=0_0_1012_506');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Visual Studio Code - Code Editing. Redefined&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.&amp;nbsp; Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;code.visualstudio.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;Visual Studio Code 공식 사이트에서 윈도우 버전을 다운로드하여 설치합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그리고, &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Remote - WSL&lt;/a&gt; 확장을 VS Code에 설치합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;이를 통해 WSL을 통합 개발 환경으로 사용하고, 호환성과 패치를 처리할 수 있습니다.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;VS Code에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;확장&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;창을 열고 (Ctrl+Shift+X), Remode - WSL 을 검색하여 설치 가능합니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;아래와 같이 LOCAL 과 WSL: UBUNTU-20.04 세션으로 구분된 것을 확인 할 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpqq9M/btqON8CGUEG/M6TMU2HRKaFINzijkzrD71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpqq9M/btqON8CGUEG/M6TMU2HRKaFINzijkzrD71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpqq9M/btqON8CGUEG/M6TMU2HRKaFINzijkzrD71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbpqq9M%2FbtqON8CGUEG%2FM6TMU2HRKaFINzijkzrD71%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여기까지 간단히 WSL2 우분투 20.04 에 Node.js 개발환경 설치를 진행했습니다.&lt;/p&gt;
&lt;p&gt;다음 포스팅은 이 개발환경에서 간단한 웹프레임워크를 진행하는 방법을 소개해보도록 하겠습니다.&lt;/p&gt;</description>
      <category>Node.js</category>
      <category>node.js</category>
      <category>npm</category>
      <category>nvm</category>
      <category>WSL2</category>
      <category>개발환경</category>
      <author>PHPINFO</author>
      <guid isPermaLink="true">https://phpinfo.tistory.com/11</guid>
      <comments>https://phpinfo.tistory.com/entry/WSL2%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-Nodejs-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%B9%98#entry11comment</comments>
      <pubDate>Wed, 2 Dec 2020 02:01:43 +0900</pubDate>
    </item>
    <item>
      <title>윈도우 터미널 개선 - hyper 설치</title>
      <link>https://phpinfo.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-%ED%84%B0%EB%AF%B8%EB%84%90-%EA%B0%9C%EC%84%A0-hyper-%EC%84%A4%EC%B9%98</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFsUKH/btqON8vSs3x/kCEQNehNyNsBVQlvHvbWcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFsUKH/btqON8vSs3x/kCEQNehNyNsBVQlvHvbWcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFsUKH/btqON8vSs3x/kCEQNehNyNsBVQlvHvbWcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFsUKH%2FbtqON8vSs3x%2FkCEQNehNyNsBVQlvHvbWcK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Hyper ?&lt;/h3&gt;
&lt;p&gt;Hyper은 일렉트론 기반의 터미널 프로그램으로 확장성이 뛰어나고 다양한 테마 및 플러그인 설치가 가능합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0m9gL/btqOMqRkGRJ/H7A0h1ay2D2Ka4WSMKOom1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0m9gL/btqOMqRkGRJ/H7A0h1ay2D2Ka4WSMKOom1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0m9gL/btqOMqRkGRJ/H7A0h1ay2D2Ka4WSMKOom1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0m9gL%2FbtqOMqRkGRJ%2FH7A0h1ay2D2Ka4WSMKOom1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;다운로드 및 설치&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://hyper.is/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;hyper.is/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1606836594067&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Hyper&amp;trade;&quot; data-og-description=&quot;A terminal built on web technologies&quot; data-og-host=&quot;hyper.is&quot; data-og-source-url=&quot;https://hyper.is/&quot; data-og-url=&quot;https://hyper.is&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bU2yUN/hyIqhkO9bt/cHcmWYLhS6gHBz7ocmjgCk/img.png?width=1686&amp;amp;height=882&amp;amp;face=0_0_1686_882,https://scrap.kakaocdn.net/dn/60Qtz/hyIrpnZzHR/XrrjjlzA0s51DrZS6lGjgK/img.png?width=1686&amp;amp;height=882&amp;amp;face=0_0_1686_882&quot;&gt;&lt;a href=&quot;https://hyper.is/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hyper.is/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bU2yUN/hyIqhkO9bt/cHcmWYLhS6gHBz7ocmjgCk/img.png?width=1686&amp;amp;height=882&amp;amp;face=0_0_1686_882,https://scrap.kakaocdn.net/dn/60Qtz/hyIrpnZzHR/XrrjjlzA0s51DrZS6lGjgK/img.png?width=1686&amp;amp;height=882&amp;amp;face=0_0_1686_882');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Hyper&amp;trade;&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;A terminal built on web technologies&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;hyper.is&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;설치 후 간단한 설정&lt;/h3&gt;
&lt;p&gt;ctrl&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;+&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;,실행 후 shell, plugins 설정 예&lt;/p&gt;
&lt;pre id=&quot;code_1606836914809&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;shell: 'C:\\Windows\\System32\\bash.exe'

plugins: [
  &quot;hyper-material-theme&quot;
],&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;설정 후 hyper를 다시 실행해 보면, 적용된다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;일단, hyper 설치 후 간단한 설정 정도 진행했고, 사용해보면서 여러가지 적용해 볼 예정입니다.&lt;/p&gt;</description>
      <category>개발환경/윈도우</category>
      <category>hyper</category>
      <category>개발환경</category>
      <category>터미널</category>
      <author>PHPINFO</author>
      <guid isPermaLink="true">https://phpinfo.tistory.com/10</guid>
      <comments>https://phpinfo.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-%ED%84%B0%EB%AF%B8%EB%84%90-%EA%B0%9C%EC%84%A0-hyper-%EC%84%A4%EC%B9%98#entry10comment</comments>
      <pubDate>Wed, 2 Dec 2020 00:39:02 +0900</pubDate>
    </item>
    <item>
      <title>PHP 몫과 나머지 구하기</title>
      <link>https://phpinfo.tistory.com/entry/PHP-%EB%AA%AB%EA%B3%BC-%EB%82%98%EB%A8%B8%EC%A7%80-%EA%B5%AC%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;PHP에서 몫과 나머지를 구하는 몇 가지 방법을 소개합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$b를 $a로 나누었을 때의 몫과 나머지&lt;/p&gt;
&lt;pre id=&quot;code_1590494148036&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
# $b를 $a로 나누었을 때의 몫과 나머지 구하기

//몫 구하는 방법 1
$quotient = ($b - ($b % $a)) / $a; 

//몫 구하는 방법 2
$quotient = sprintf('%d', $b / $a);

// 나머지 구하는 방법
$remainder = $b % $a;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수로 간단히 몫과 나머지 구하는 예제&lt;/p&gt;
&lt;pre id=&quot;code_1590494845735&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
function getQuotientAndRemainder($divisor, $dividend) {
    $quotient = (int)($divisor / $dividend);
    $remainder = $divisor % $dividend;
    return array( $quotient, $remainder );
}

list($quotient, $remainder) = getQuotientAndRemainder(10, 3);&lt;/code&gt;&lt;/pre&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;How to find remainder and quotient in php?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;몫과 나머지 영어로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;몫 : quotient&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나머지 : remainder&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>PHP</category>
      <category>php</category>
      <category>몫과나머지</category>
      <author>PHPINFO</author>
      <guid isPermaLink="true">https://phpinfo.tistory.com/9</guid>
      <comments>https://phpinfo.tistory.com/entry/PHP-%EB%AA%AB%EA%B3%BC-%EB%82%98%EB%A8%B8%EC%A7%80-%EA%B5%AC%ED%95%98%EA%B8%B0#entry9comment</comments>
      <pubDate>Tue, 26 May 2020 21:10:58 +0900</pubDate>
    </item>
    <item>
      <title>PHP - 실제 클라이언트 IP주소 가져오기</title>
      <link>https://phpinfo.tistory.com/entry/PHP-%EC%8B%A4%EC%A0%9C-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-IP%EC%A3%BC%EC%86%8C-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;PHP개발을 하다보면, 부정사용을 방지하는 목적 등을 위해 사용자의 IP를 체크하는 경우가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 아래와 같이 사용하게 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1664871413572&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php

$ip = $_SERVER['REMOTE_ADDR'];&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 경우에 따라서는 사용자의 IP주소를 올바르게 가져오지 못하는 경우가 있는데요, 예를 들면&amp;nbsp;사용자가&amp;nbsp;프록시 서버를 경유해 특정 웹사이트로 접근하면 프록시 서버에 의해 사용자의 실제 IP주소를 숨길 수 있기 때문입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이러한 경우에도, 다른 방법을 통해 실제 사용자의 IP주소를 알아낼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹사이트에 접근할 때, 여러 가지 헤더정보를 넘겨 주게 되는데, 거기에 원래(실제)&amp;nbsp;사용자의 IP주소도 같이 넘겨 받게 됩니다. 그 메소드가 &quot;X-Forwarded-For&quot;이고, PHP에서는 &quot;HTTP_X_FORWARDED_FOR&quot; 변수에 저장됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러므로 HTTP_X_FORWARDED_FOR 변수로 비교 체크하여 불량IP주소를 어느정도 걸러낼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;PHP 환경변수값을 불러오는 getenv() 를 이용하는 방법&lt;/h2&gt;
&lt;pre id=&quot;code_1664871476216&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php

function getRealClientIp() {
    $ipaddress = '';
    if (getenv('HTTP_CLIENT_IP')) {
        $ipaddress = getenv('HTTP_CLIENT_IP');
    } else if(getenv('HTTP_X_FORWARDED_FOR')) {
        $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
    } else if(getenv('HTTP_X_FORWARDED')) {
        $ipaddress = getenv('HTTP_X_FORWARDED');
    } else if(getenv('HTTP_FORWARDED_FOR')) {
        $ipaddress = getenv('HTTP_FORWARDED_FOR');
    } else if(getenv('HTTP_FORWARDED')) {
        $ipaddress = getenv('HTTP_FORWARDED');
    } else if(getenv('REMOTE_ADDR')) {
        $ipaddress = getenv('REMOTE_ADDR');
    } else {
        $ipaddress = '알수없음';
    }
    return $ipaddress;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;웹서버(아파치, nginx 등)를 통해 생성된 값들을 가지고 있는 $_SERVER 배열 변수를 이용하는 방법&lt;/h3&gt;
&lt;pre id=&quot;code_1664871536217&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php

function getRealClientIp() {
    $ipaddress = '';
    if ($_SERVER['HTTP_CLIENT_IP']) {
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    } else if($_SERVER['HTTP_X_FORWARDED_FOR']) {
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else if($_SERVER['HTTP_X_FORWARDED']) {
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    } else if($_SERVER['HTTP_FORWARDED_FOR']) {
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    } else if($_SERVER['HTTP_FORWARDED']) {
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    } else if($_SERVER['REMOTE_ADDR']) {
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    } else {
        $ipaddress = '알수없음';
    }
    return $ipaddress;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고 : HTTP_X_FORWARDED_FOR 는 때로는 내부IP주소 또는 로컬IP주소를 표시하는 경우가 있고, 여러 IP주소일 경우에는 콤마(,)로 구분되어 표시됩니다.&lt;/p&gt;</description>
      <category>PHP</category>
      <category>ipaddress</category>
      <category>proxy</category>
      <author>PHPINFO</author>
      <guid isPermaLink="true">https://phpinfo.tistory.com/8</guid>
      <comments>https://phpinfo.tistory.com/entry/PHP-%EC%8B%A4%EC%A0%9C-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-IP%EC%A3%BC%EC%86%8C-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0#entry8comment</comments>
      <pubDate>Tue, 24 Oct 2017 23:44:58 +0900</pubDate>
    </item>
    <item>
      <title>array_map 함수</title>
      <link>https://phpinfo.tistory.com/entry/arraymap-%ED%95%A8%EC%88%98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #484848; font-family: 돋움, Dotum, sans-serif; font-size: 12pt; line-height: 25.2072px;&quot;&gt;PHP 에서 DB관련 작업을 진행할 때,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #484848; font-family: 돋움, Dotum, sans-serif; font-size: 12pt; line-height: 25.2072px;&quot;&gt;mysql_real_escape_string 처리를 해야하는 경우가 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #484848; font-family: 돋움, Dotum, sans-serif; font-size: 14.004px; line-height: 25.2072px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #484848; font-family: 돋움, Dotum, sans-serif; font-size: 12pt; line-height: 25.2072px;&quot;&gt;아래와 같이 요소 하나하나&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #484848;&quot;&gt;&lt;span style=&quot;font-size: 12pt; line-height: 25.2072px;&quot;&gt;escape&amp;nbsp;처리를 할 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1664871716562&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
$id = mysql_escape_string($array['id']);
$address = mysql_escape_string($array['address']);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #484848; font-family: 돋움, Dotum, sans-serif; font-size: 14.004px; line-height: 25.2072px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #484848; font-family: 돋움, Dotum, sans-serif; font-size: 12pt; line-height: 25.2072px;&quot;&gt;배열 항목이 몇 개 아니면 상관없지만, 많다면&amp;nbsp;배열 항목 모두를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #484848; font-family: 돋움, Dotum, sans-serif; font-size: 12pt; line-height: 25.2072px;&quot;&gt;mysql_real_escape_string 하려면 여간 귀찮은 일이 아닐 수 없다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #484848;&quot;&gt;&lt;span style=&quot;font-size: 12pt; line-height: 25.2072px;&quot;&gt;하지만, PHP 함수 중, array_may 함수를 이용하면 한꺼번에 처리 가능하다.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #484848;&quot;&gt;&lt;span style=&quot;font-size: 14.004px; line-height: 25.2072px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #484848;&quot;&gt;&lt;span style=&quot;font-size: 12pt; line-height: 25.2072px;&quot;&gt;아래와 같이 처리하면 된다 ^^&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1664871763880&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
$array = array_map('mysql_escape_string', $array);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;PHP 매뉴얼 : &lt;/span&gt;&lt;a class=&quot;tx-link&quot; href=&quot;http://php.net/manual/kr/function.array-map.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;array_map&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <category>PHP</category>
      <author>PHPINFO</author>
      <guid isPermaLink="true">https://phpinfo.tistory.com/6</guid>
      <comments>https://phpinfo.tistory.com/entry/arraymap-%ED%95%A8%EC%88%98#entry6comment</comments>
      <pubDate>Wed, 22 Jun 2016 11:07:28 +0900</pubDate>
    </item>
    <item>
      <title>PHP 문자열 배열로 변환, 배열을 문자열로 변환</title>
      <link>https://phpinfo.tistory.com/entry/PHP-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EB%B3%80%ED%99%98-%EB%B0%B0%EC%97%B4%EC%9D%84-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C-%EB%B3%80%ED%99%98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;PHP 개발을 하다 보면 문자열을 배열로 변환하거나, 또는 배열을 문자열로 변환해서 처리하는 경우가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;PHP 문자열 배열로 변환, 배열을 문자열로 변환 예시&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 몇 가지 예시를 통해 PHP 문자열을 배열로 변환하는 방법, PHP배열을 문자열로 변환하는 방법에 대해서 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예 1) 문자열을 배열로 변환&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1664871983956&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = 'apple,mango,tomato,banana';
$str_arr = explode(',', $str);

echo '&amp;lt;pre&amp;gt;';
var_dump($str_arr);
echo '&amp;lt;/pre&amp;gt;';&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[결과] 아래와 같이 배열로 성공적으로 변환된 것을 볼 수 있습니다.&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;array(4) {
  [0]=&amp;gt;
  string(5) &quot;apple&quot;
  [1]=&amp;gt;
  string(5) &quot;mango&quot;
  [2]=&amp;gt;
  string(6) &quot;tomato&quot;
  [3]=&amp;gt;
  string(6) &quot;banana&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;예 2) 공백(스페이스)을 포함하는 문자열을 배열로 변환&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1664872182852&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = 'apple, mango, tomato,   banana';
$str_arr = explode(',', $str);

echo '&amp;lt;pre&amp;gt;';
var_dump($str_arr);
echo '&amp;lt;/pre&amp;gt;';&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[결과] 아래와 같이 배열로 성공적으로 변환되었지만, 각 요소들을 보면 공백(스페이스) 그대로 포함되어 있습니다.&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;array(4) {
  [0]=&amp;gt;
  string(5) &quot;apple&quot;
  [1]=&amp;gt;
  string(6) &quot; mango&quot;
  [2]=&amp;gt;
  string(7) &quot; tomato&quot;
  [3]=&amp;gt;
  string(9) &quot;   banana&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;예 3) 앞뒤 콤마를 포함하는 문자열을 배열로 변환&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1664872318768&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = ',apple, mango, tomato,   banana,';
$str_arr = explode(',', $str);

echo '&amp;lt;pre&amp;gt;';
var_dump($str_arr);
echo '&amp;lt;/pre&amp;gt;';&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[결과] 아래와 같이 배열로 성공적으로 변환되었지만, 배열 첫 번째 요소와 마지막 요소에 빈 값이 들어가 있다.&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;array(6) {
  [0]=&amp;gt;
  string(0) &quot;&quot;
  [1]=&amp;gt;
  string(5) &quot;apple&quot;
  [2]=&amp;gt;
  string(6) &quot; mango&quot;
  [3]=&amp;gt;
  string(7) &quot; tomato&quot;
  [4]=&amp;gt;
  string(9) &quot;   banana&quot;
  [5]=&amp;gt;
  string(0) &quot;&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;예 4) 문자열에서 공백 및 앞뒤 콤마(,)를 제거하여 배열로 변환&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1664872413131&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = ',apple, mango, tomato,   banana,';
$str = trim($str); // 문자열 앞 뒤 공백 제거
$str = ltrim($str,','); // 문자열 맨 앞 콤마(,) 제거
$str = rtrim($str,','); // 문자열 맨 마지막 콤마(,) 제거
$str = str_replace(array(&quot;\r\n&quot;,&quot;\r&quot;,&quot;\n&quot;),'',$str); // 개행문자 제거
$str_arr = array_map('trim', explode(',', $str)); //문자열을 배열로 변환 &amp;amp; 각 배열요소 트림(trim) 처리

echo '&amp;lt;pre&amp;gt;';
var_dump($str_arr);
echo '&amp;lt;/pre&amp;gt;';&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[결과] 아래와 같이 배열로 성공적으로 변환되었습니다.&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;array(4) {
  [0]=&amp;gt;
  string(5) &quot;apple&quot;
  [1]=&amp;gt;
  string(5) &quot;mango&quot;
  [2]=&amp;gt;
  string(6) &quot;tomato&quot;
  [3]=&amp;gt;
  string(6) &quot;banana&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;배열을 문자열로 변환하는 것은 예 4)에서 처리된 배열을 implode 함수를 이용해서 처리하면 됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1664872543265&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = ',apple, mango, tomato,   banana,';
$str = trim($str); // 문자열 앞 뒤 공백 제거
$str = ltrim($str,','); // 문자열 맨 앞 콤마(,) 제거
$str = rtrim($str,','); // 문자열 맨 마지막 콤마(,) 제거
$str = str_replace(array(&quot;\r\n&quot;,&quot;\r&quot;,&quot;\n&quot;),'',$str); // 개행문자 제거
$str_arr = array_map('trim', explode(',', $str)); //문자열을 배열로 변환 &amp;amp; 각 배열요소 트림(trim) 처리

// echo '&amp;lt;pre&amp;gt;';
// var_dump($str_arr);
// echo '&amp;lt;/pre&amp;gt;';

$str = implode(',', $str_arr);
var_dump($str);&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[결과] 아래와 같이 문자열로 성공적으로 변환되었다.&lt;/p&gt;
&lt;pre class=&quot;stylus&quot;&gt;&lt;code&gt;string(25) &quot;apple,mango,tomato,banana&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경우에 따라서는 예 2) 예 3) 도 필요한 경우가 있지만, 예 4)처럼 공백 및 앞 뒤의 콤마를 제거하여 배열로 변환하는 처리가 더 필요할 것 같아서 정리해봤습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>PHP</category>
      <category>array</category>
      <category>array_map</category>
      <category>explode</category>
      <category>implode</category>
      <category>LTRIM</category>
      <category>php</category>
      <category>RTRIM</category>
      <category>str_replace</category>
      <category>trim</category>
      <category>문자열</category>
      <category>배열</category>
      <category>변환</category>
      <author>PHPINFO</author>
      <guid isPermaLink="true">https://phpinfo.tistory.com/5</guid>
      <comments>https://phpinfo.tistory.com/entry/PHP-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EB%B3%80%ED%99%98-%EB%B0%B0%EC%97%B4%EC%9D%84-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C-%EB%B3%80%ED%99%98#entry5comment</comments>
      <pubDate>Tue, 21 Jun 2016 15:49:43 +0900</pubDate>
    </item>
    <item>
      <title>include, require, include_once, require_once 비교 차이점</title>
      <link>https://phpinfo.tistory.com/entry/include-require-includeonce-requireonce-%EB%B9%84%EA%B5%90-%EC%B0%A8%EC%9D%B4%EC%A0%90</link>
      <description>&lt;p&gt;include와 require 그리고 include_once, require_once 는 기본적으로 파일을 불러올 때 쓰는 함수입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;include와&amp;nbsp;require는 수행 실패를 다루는 방법을 제외하고 완전히 동일합니다. 둘 모두 Warning을 발생시키지만, require는 &lt;b&gt;Fatal Error&lt;/b&gt;가 나타납니다. 즉, 파일이 없을 때 페이지 처리를 멈추고 싶으면 require를 사용하면 됩니다. include는 멈추지 않고 스크립트가 계속 실행됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;require는 실패시에 치명적인 E_ERROR 등급 오류가 발생한다는 점을 제외하면, include와 동일합니다. 즉, include가 경고(E_WARNING)만 발생하고 스크립트는 계속 진행되는 것과 달리, 스크립트가 중단됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;쓰는 방법은 아래와 같습니다.&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(254, 137, 67); padding: 10px; background-color: rgb(254, 222, 199);&quot;&gt;&lt;p&gt;include &quot;파일&quot;;&lt;/p&gt;&lt;p&gt;require &quot;파일&quot;;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;또는&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;include (&quot;파일&quot;);&lt;/p&gt;&lt;p&gt;require (&quot;파일&quot;);&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;include_once, require_once&amp;nbsp;는 기본적인 동작은 include, require 와 동일하고, &amp;nbsp;해당 파일을 오직 한번만 불러오기 위한 옵션이라고 생각하시면 됩니다.&lt;/div&gt;&lt;div&gt;따라서 아래와 같이 여러번 호출하여도 한번만 인클루드 되도록 처리됩니다.&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;div&gt;include_once&amp;nbsp;&quot;inc.php&quot;;&lt;/div&gt;&lt;div&gt;require_once&amp;nbsp;&quot;inc.php&quot;;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;파일을 불러오는 함수에 대해서 알아보았는데, 경우에 따라 적절한 함수를 쓰면 되겠죠? ^^&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>PHP</category>
      <category>include</category>
      <category>include_once</category>
      <category>php</category>
      <category>require</category>
      <category>require_once</category>
      <category>함수</category>
      <author>PHPINFO</author>
      <guid isPermaLink="true">https://phpinfo.tistory.com/3</guid>
      <comments>https://phpinfo.tistory.com/entry/include-require-includeonce-requireonce-%EB%B9%84%EA%B5%90-%EC%B0%A8%EC%9D%B4%EC%A0%90#entry3comment</comments>
      <pubDate>Thu, 16 Jun 2016 15:07:28 +0900</pubDate>
    </item>
    <item>
      <title>phpinfo()</title>
      <link>https://phpinfo.tistory.com/entry/phpinfo</link>
      <description>&lt;div&gt;phpinfo - PHP의 설정정보를 출력해줍니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;div&gt;bool phpinfo ([ int $what = INFO_ALL ] )&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;현재 PHP 상태에 관련된, 다양한 정보를 출력합니다. 출력되는 정보에는 PHP컴파일 옵션과 확장기능, PHP버전, 서버정보 및 환경, PHP의 환경, OS버전정보, 경로(PATH), 구성옵션, 구성옵션의 마스터값(Master Value), 로컬값(Local Value), &amp;nbsp;HTTP헤더, PHP라이센스 등의 정보가 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;또한 &lt;b&gt;phpinfo()&lt;/b&gt;에는&amp;nbsp;EGPCS (Environment, GET, POST, Cookie, Server)의 정보가 포함되어 있어서, 디버그툴로도 유용합니다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;간단히 아래와 같이 phpinfo.php 파일을 작성하여, 브라우저에서 호출하면, 정보를 확인 가능합니다.&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;code class=&quot;language-php&quot;&gt;// Show all information, defaults to INFO_ALL
phpinfo();

// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code class=&quot;language-php&quot;&gt;&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;code class=&quot;language-php&quot;&gt;
&lt;p&gt;참조&amp;gt;&amp;nbsp;https://secure.php.net/manual/kr/function.phpinfo.php&lt;/p&gt;&lt;/code&gt;&lt;/div&gt;&lt;p&gt;&lt;code class=&quot;language-php&quot;&gt;&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;</description>
      <category>PHP</category>
      <category>php</category>
      <category>phpinfo</category>
      <author>PHPINFO</author>
      <guid isPermaLink="true">https://phpinfo.tistory.com/1</guid>
      <comments>https://phpinfo.tistory.com/entry/phpinfo#entry1comment</comments>
      <pubDate>Sun, 15 Sep 2013 04:19:37 +0900</pubDate>
    </item>
    <item>
      <title>PHP란?</title>
      <link>https://phpinfo.tistory.com/entry/PHP%EB%9E%80</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;PHP란 무엇일까요?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP는 재귀 약자&lt;sup class=&quot;footnote&quot;&gt;&lt;a id=&quot;footnote_link_2_1&quot; style=&quot;color: #f9650d; font-family: Verdana,Sans-serif; display: inline;&quot; href=&quot;#footnote_2_1&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;1&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;(recursive acronym)로 &lt;b&gt;P&lt;/b&gt;HP: &lt;b&gt;H&lt;/b&gt;ypertext &lt;b&gt;P&lt;/b&gt;reprocessor 를 의미합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;널리 사용되고 있는 오픈소스 범용스크립트 언어입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP는 특히 웹개발에 적합하여, HTML에 포함하는 것이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로, 대표적인 재귀 약자의 몇가지 예입니다.&lt;/p&gt;
&lt;blockquote class=&quot;&quot; data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GNU - GNU is Not Unix&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LAME - LAME Ain't an MP3 Encoder&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YAML - YAML Ain't Markup Language&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WINE - Wine Is Not an Emulator&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고&amp;gt; &lt;a class=&quot;tx-link&quot; href=&quot;https://ko.wikipedia.org/wiki/%EC%9E%AC%EA%B7%80_%EC%95%BD%EC%9E%90&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;위키백과&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기초적인 PHP의 예시입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1664871861026&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;html&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;title&amp;gt;Example&amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;
        &amp;lt;?php
            echo &quot;Hi, I'm a PHP script!&quot;;
        ?&amp;gt;
     &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li id=&quot;footnote_2_1&quot;&gt;원래 문장 안에 약자가 그대로 들어 있도록 이름을 지은 것이다. &lt;a href=&quot;#footnote_link_2_1&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt; tistoryFootnote.add(2,1,&quot;\uc6d0\ub798 \ubb38\uc7a5 \uc548\uc5d0 \uc57d\uc790\uac00 \uadf8\ub300\ub85c \ub4e4\uc5b4 \uc788\ub3c4\ub85d \uc774\ub984\uc744 \uc9c0\uc740 \uac83\uc774\ub2e4.&quot;); &lt;/script&gt;</description>
      <category>PHP</category>
      <category>php</category>
      <category>recursive acronym</category>
      <category>재귀약자</category>
      <author>PHPINFO</author>
      <guid isPermaLink="true">https://phpinfo.tistory.com/2</guid>
      <comments>https://phpinfo.tistory.com/entry/PHP%EB%9E%80#entry2comment</comments>
      <pubDate>Fri, 13 Sep 2013 23:02:02 +0900</pubDate>
    </item>
  </channel>
</rss>