<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>즐거운 코딩 생활 ( funyphp ) &amp;gt; community &amp;gt; php</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php</link>
<language>ko</language>
<description>php (2020-06-08 13:05:37)</description>

<item>
<title>[ php ] foreach() 오류 Invalid argument supplied for foreach()</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=91</link>
<description><![CDATA[<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>Invalid argument supplied for foreach()</p>
   </div>
<p>이러한 오류가 발생하는것은 foreach에 검색하는 변수의 값이 비어있기 때문.</p>
<p>어쩔수 없이 빈값인지 확인해야 한다.</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>if(!emepty($변수)) {</p>
   <p>  foreach($변수 AS $key) {</p>
   <p>   echo "샬랄라";</p>
   <p>  }</p>
   <p>}</p>
   </div>
<p>이런식으로 감싸줘야 ㅡㅡ;;</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2020-06-08T13:05:37+09:00</dc:date>
</item>


<item>
<title>[ php ] php 7.2 count() 사용시 에러 조치</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=90</link>
<description><![CDATA[<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>Severity: Warning --&gt; count(): Parameter must be an array or an object that implements Countable</p>
   </div>
<p>기존에는 빈값일 때 문제 없었는데, 7.2버젼에서는 빈값이면 0이 아니기 때문에 오류가 발생했다.</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>if(count($num) &gt; 0) {</p>
   <p> echo "test"; </p>
   <p>}</p>
   </div>
<p>이부분에서 문제가 생겨서 다음처럼 수정을 했다.</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>if(is_null($num)) {</p>
   <p> ;</p>
   <p>} else {</p>
   <p> if(count($num) &gt; 0) {</p>
   <p>  echo "확인";</p>
   <p> }</p>
   <p>}</p>
   </div>
<p>이러한 형태로 변경을 해주었다.</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2020-06-08T11:41:12+09:00</dc:date>
</item>


<item>
<title>[ php ] phpsocket.io 사용법</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=89</link>
<description><![CDATA[<p> </p>
<h2 style="font-family:'Open Sans', sans-serif;line-height:16px;color:#2d2d32;margin:25px 0px 10px;font-size:16px;padding:0px;background-color:#fafafa;">Start</h2>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>php start.php start  for debug mode</p>
   <p>php start.php start -d  for daemon mode</p>
   <p>php start.php restart</p>
   </div>
<h2 style="font-family:'Open Sans', sans-serif;line-height:16px;color:#2d2d32;margin:25px 0px 10px;font-size:16px;padding:0px;background-color:#fafafa;"><a class="anchor" href="https://packagist.org/packages/workerman/phpsocket.io#user-content-stop" style="background-color:transparent;color:#2d2d32;float:left;padding-right:4px;margin-left:-20px;line-height:1;" target="_blank" rel="nofollow noreferrer noopener"></a>Stop</h2>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>php start.php stop</p>
   </div>
<h2 style="font-family:'Open Sans', sans-serif;line-height:16px;color:#2d2d32;margin:25px 0px 10px;font-size:16px;padding:0px;background-color:#fafafa;"><a class="anchor" href="https://packagist.org/packages/workerman/phpsocket.io#user-content-status" style="background-color:transparent;color:#2d2d32;float:left;padding-right:4px;margin-left:-20px;line-height:1;" target="_blank" rel="nofollow noreferrer noopener"></a>Status</h2>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>php start.php status</p>
   </div>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2020-05-08T17:14:44+09:00</dc:date>
</item>


<item>
<title>[ php ] php에서 0값의 인식문제</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=88</link>
<description><![CDATA[<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>$a = 0;</p>
   <p>if(isset($a) &amp;&amp; $a!="")</p>
   <p> echo "0있어";</p>
   <p>else</p>
   <p> echo "0없어";</p>
   <p> </p>
   </div>
<p>현재는 이러한 형태로 해놓은 상태이다.</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2020-03-21T15:11:23+09:00</dc:date>
</item>


<item>
<title>[ php ] php error root write ( php 오류 root에 저장하기 )</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=86</link>
<description><![CDATA[<p>php 오류를 root페이지에 저장하고 싶을 때</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>/home/test/public_html</p>
   </div>
<p>위 폴더가 root라고 할 때 해당폴더에 저장할 파일명을 아래처럼 적어준다.</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>&lt;?php</p>
   <p>ini_set("log_errors", 1); </p>
   <p>ini_set("error_log", "/home/test/public_html/php-error.log");</p>
   <p>?&gt;</p>
   </div>
<p>간단하게</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>&lt;?php</p>
   <p>error_log($log, 3, self::USER_ERROR_DIR);</p>
   <p>?&gt;</p>
   </div>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2020-02-21T15:45:12+09:00</dc:date>
</item>


<item>
<title>[ php ] htmlspecialchars 와 json 의 관계</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=84</link>
<description><![CDATA[<p>htmlspecialchars는 특수문자를 HTML 엔티티로 변환해준다.</p>
<p> </p>
<p>수행되는 번역</p>
<table class="doctable table" style="border-spacing:0px;margin:0px 0px 1.5rem;width:90%;color:#333333;font-family:'Fira Sans', 'Source Sans Pro', Helvetica, Arial, sans-serif;font-size:16px;background-color:#f2f2f2;">
   <thead>
      <tr style="border-width:1px;border-style:solid;border-color:#c4c9df rgb(196,201,223) rgb(136,146,191);">
         <th style="text-align:left;padding:0.25rem 0.5rem;background-color:#c4c9df;" width="20%">Character</th>
         <th style="text-align:left;padding:0.25rem 0.5rem;background-color:#c4c9df;">Replacement</th>
         </tr>
      </thead>
   <tbody class="tbody">
      <tr style="border:1px solid rgb(204,204,204);background-color:#ffffff;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><em>&amp;</em> (ampersand)</td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><em>&amp;amp;</em></td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#e6e6e6;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><em>"</em> (double quote)</td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><em>&amp;quot;</em>, unless <span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.5rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_NOQUOTES</code>
               </span> is set</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#ffffff;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><em>'</em> (single quote)</td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><em>&amp;#039;</em> (for <span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.5rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_HTML401</code>
               </span>) or <em>&amp;apos;</em> (for <span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.5rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_XML1</code>
               </span>, <span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.5rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_XHTML</code>
               </span> or <span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.5rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_HTML5</code>
               </span>), but only when <span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.5rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_QUOTES</code>
               </span> is set</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#e6e6e6;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><em>&lt;</em> (less than)</td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><em>&lt;</em></td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#ffffff;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><em>&gt;</em> (greater than)</td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><em>&gt;</em></td>
         </tr>
      </tbody>
   </table>
<p>사용가능한 상수</p>
<table class="doctable table" style="border-spacing:0px;margin:0px 0px 1.5rem;width:90%;color:#333333;font-family:'Fira Sans', 'Source Sans Pro', Helvetica, Arial, sans-serif;font-size:16px;background-color:#f2f2f2;">
   <thead>
      <tr style="border-width:1px;border-style:solid;border-color:#c4c9df rgb(196,201,223) rgb(136,146,191);">
         <th style="text-align:left;padding:0.25rem 0.5rem;background-color:#c4c9df;" width="20%">Constant Name</th>
         <th style="text-align:left;padding:0.25rem 0.5rem;background-color:#c4c9df;">Description</th>
         </tr>
      </thead>
   <tbody class="tbody">
      <tr style="border:1px solid rgb(204,204,204);background-color:#ffffff;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.375rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_COMPAT</code>
               </span></td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;">Will convert double-quotes and leave single-quotes alone.</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#e6e6e6;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.375rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_QUOTES</code>
               </span></td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;">Will convert both double and single quotes.</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#ffffff;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.375rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_NOQUOTES</code>
               </span></td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;">Will leave both double and single quotes unconverted.</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#e6e6e6;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.375rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_IGNORE</code>
               </span></td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;">Silently discard invalid code unit sequences instead of returning an empty string. Using this flag is discouraged as it <a href="http://unicode.org/reports/tr36/#Deletion_of_Noncharacters" class="link external" style="border-bottom:1px solid;color:#336699;" target="_blank" rel="nofollow noreferrer noopener">» may have security implications</a>.</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#ffffff;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.375rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_SUBSTITUTE</code>
               </span></td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;">Replace invalid code unit sequences with a Unicode Replacement Character U+FFFD (UTF-8) or &amp;#xFFFD; (otherwise) instead of returning an empty string.</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#e6e6e6;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.375rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_DISALLOWED</code>
               </span></td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;">Replace invalid code points for the given document type with a Unicode Replacement Character U+FFFD (UTF-8) or &amp;#xFFFD; (otherwise) instead of leaving them as is. This may be useful, for instance, to ensure the well-formedness of XML documents with embedded external content.</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#ffffff;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.375rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_HTML401</code>
               </span></td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;">Handle code as HTML 4.01.</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#e6e6e6;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.375rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_XML1</code>
               </span></td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;">Handle code as XML 1.</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#ffffff;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.375rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_XHTML</code>
               </span></td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;">Handle code as XHTML.</td>
         </tr>
      <tr style="border:1px solid rgb(204,204,204);background-color:#e6e6e6;">
         <td style="vertical-align:top;padding:0.25rem 0.5rem;"><span style="font-weight:bolder;">
               <code style="font-size:0.875rem;line-height:1.375rem;font-family:'Fira Mono', 'Source Code Pro', monospace;">ENT_HTML5</code>
               </span></td>
         <td style="vertical-align:top;padding:0.25rem 0.5rem;">Handle code as HTML 5.</td>
         </tr>
      </tbody>
   </table>
<p> 그러므로 이함수를 활성화해서 사용하는경우 json으로 변환되는 값은 " 를 사용하므로 </p>
<p>이 값들을 무시하게 해주어야 한다.</p>
<p>즉 POST, GET, REQUEST 등으로 넘어오는 값에 변경해야할 문자가 존재하면 모두 변경해 버림으로</p>
<p>json값 자체에 번역되어 들어오는 값으로 인식이 되어 정상적인 처리가 되지 않는다.</p>
<p> </p>
<p>해경방법은 </p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p># htmlspecialchars($data, ENT_NOQUOTES);</p>
   </div>
<p>와 같이 사용하여 값을 넘겨주는 방법과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p># $menudata_json = htmlspecialchars_decode($this-&gt;input-&gt;post('menudata'));</p>
   </div>
<p>이처럼 post로 넘어온 값에 대하여 역으로 풀어주는 방법이 있다.</p>
<p> </p>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-12-04T01:40:25+09:00</dc:date>
</item>


<item>
<title>[ php ] 위도 경도로 직선거리 계산하기</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=83</link>
<description><![CDATA[<p>첫번째 위도 경도, 두번째 위도 경도 를 통해서 직선거리 구하기</p>
<p>함수를 만들고 그에 해당하는 위도와 경로를 설정해서 거기를 환산해보면 된다.</p>
<p>값은 거리상의 km이다 소수점 아래 몇짜리까지 사용할 것인지는 알아서 판단하면 된다.</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p> &lt;?php</p>
   <p>/**</p>
   <p>* Calculates the great-circle distance between two points, with</p>
   <p>* the Haversine formula.</p>
   <p>* @param float $latitudeFrom Latitude of start point in [deg decimal]</p>
   <p>* @param float $longitudeFrom Longitude of start point in [deg decimal]</p>
   <p>* @param float $latitudeTo Latitude of target point in [deg decimal]</p>
   <p>* @param float $longitudeTo Longitude of target point in [deg decimal]</p>
   <p>* @param float $earthRadius Mean earth radius in [m]</p>
   <p>* @return float Distance between points in [m] (same as earthRadius)</p>
   <p>**/</p>
   <p>function haversineGreatCircleDistance( $latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000)</p>
   <p>{</p>
   <p>    // convert from degrees to radians</p>
   <p>    $latFrom = deg2rad($latitudeFrom);</p>
   <p>    $lonFrom = deg2rad($longitudeFrom);</p>
   <p>    $latTo = deg2rad($latitudeTo);</p>
   <p>    $lonTo = deg2rad($longitudeTo);</p>
   <p>    </p>
   <p>    $latDelta = $latTo - $latFrom;</p>
   <p>    $lonDelta = $lonTo - $lonFrom;</p>
   <p>    </p>
   <p>    $angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) + cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));</p>
   <p>    return $angle * $earthRadius;</p>
   <p>}</p>
   <p> </p>
   <p>$center_lat = 41.8350;</p>
   <p>$center_lng = 12.470;</p>
   <p>$lat = 41.9133741000;</p>
   <p>$lng = 12.5203944000;</p>
   <p> </p>
   <p>// test with your arccosine formula</p>
   <p>$distance =( 6371 * acos((cos(deg2rad($center_lat)) ) * (cos(deg2rad($lat))) * (cos(deg2rad($lng) - deg2rad($center_lng)) )+ ((sin(deg2rad($center_lat))) * (sin(deg2rad($lat))))) );</p>
   <p>print($distance); // prints 9.662174538188</p>
   <p><br /></p>
   <p>// test with my haversine formula</p>
   <p>$distance = haversineGreatCircleDistance($center_lat, $center_lng, $lat, $lng, 6371);</p>
   <p>print($distance); // prints 9.6621745381693</p>
   <p>?&gt;</p>
   </div>
<p> </p>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-10-03T15:33:00+09:00</dc:date>
</item>


<item>
<title>[ php ] php 객체지향 - 클래스 정의, 객체 생성, 접근, 생성자, 소멸자</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=82</link>
<description><![CDATA[<p>클래스 정의</p>
<p>  - 객체는 class 키워드로 클래스를 정의</p>
<p>  - 클래스의 정의에는 클래스이름(대문자 소문자 구분)과 속성 메소드가 포함</p>
<p>  - 클래스는 데이터를 저장하는 속성 값을 가지고 있슴.</p>
<p>  - 데이터를 가공 / 처리하기 위한 메소드를 포함</p>
<p> </p>
<p>객체</p>
<p>   - 자바와 흡사하고 trait(특성)이 추가 되었슴.</p>
<p>   - 클래스 외부에서 클래스의 static(고정), constant(상수)에 접근할 때, </p>
<p>     클래스 내부에서 상속 계층상의 프로퍼티나 메소드에 접근 할 때는 -&gt;가 아니라 ::를 사용한다</p>
<p> </p>
<p>  = 접근제한 키워드</p>
<p>     public, protected, private</p>
<p>  = 생성자, 소멸자</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>function __construct( ) { }</p>
   <p>function __destruct( ) { }</p>
   </div>
<p>  </p>
<p>  = 객체생성은 new 키워드를 사용</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>&lt;?php</p>
   <p>$test = new User; //new키워드로 User객체를 생성</p>
   <p>class User</p>
   <p>{</p>
   <p>    public $id, $name; //public로 변수선언</p>
   <p>    function printUser( ) //User클래스에 printUser 메소드 선언</p>
   <p>    {</p>
   <p>        print_r($this); //User클래스 출력</p>
   <p>    }</p>
   <p>}</p>
   <p>?&gt;</p>
   </div>
<p> </p>
<p>  = 접근</p>
<p>    객체의 속성에 접근하는 방법은 -&gt; 를 사용</p>
<p>    new로 생성한 User 클래스를 대입한 $test의 name의 속성에 접근 방법은 $test -&gt; name</p>
<p>    객체메소드 printUser() 접근 방법은 $test -&gt; printUser( )</p>
<p>    속성이나 메소드 접근시 "$"를 붙이지 않음</p>
<p> </p>
<p> = 복제</p>
<p>    새로운 메모리를 할당하는 것이 아닌 객체의 주소값을 전달하는 것</p>
<p>    새로운 객체의 복제는 clone 키워드를 사용</p>
<p> </p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>&lt;?php </p>
   <p>$test = new User(); //User객체를 생성해서 test변수에 대입</p>
   <p>$test -&gt; name = "No"; //test객체의 name속성에 "No" 대입</p>
   <p>$test2 = clone $test; //test객체를 복제하여 test2에 대입</p>
   <p>$test2 -&gt; name = "Hahaha"; //test2 객체의 name속성에 "Hahaha" 대입</p>
   <p>echo "--- test name ---".$test -&gt; name."&lt;br&gt;"; //No출력</p>
   <p>echo "=== test2 name ===".$test2 -&gt; name ."&lt;br&gt;"; //Hahaha출력</p>
   <p>?&gt;</p>
   </div>
<p> </p>
<p> </p>
<p>상속</p>
<p>  - extends 단일상속만 허용</p>
<p>  - implements 인터페이스는 여러개 받아 구현가능</p>
<p>  - final 오버라이드나 상속을 금지</p>
<p> </p>
<p>  = trait </p>
<p>     상속, 인터페이스, 트레이트</p>
<p>     오버라이드 순위 " 클래스 메소드 &gt; 트레이트 메소드 &gt; 상속한 메소드 "</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>trait UserTrait</p>
   <p>{</p>
   <p>    public function userTraitMethod( )</p>
   <p>    {</p>
   <p>    </p>
   <p>    }</p>
   <p>}</p>
   <p>class UserClass</p>
   <p>{</p>
   <p>    use UserTrait, ...;</p>
   <p>    ....</p>
   <p>}</p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-05-16T17:57:31+09:00</dc:date>
</item>


<item>
<title>[ php ] php 절차지향 객체지향</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=81</link>
<description><![CDATA[<p> 절차지향(procedural programming)</p>
<p> - 절차지향 프로그램은 위에서 아래로 흐르는 순차적인 처리</p>
<p> - 프로그램 전체가 유기적으로 연결되도록 만드는 프로그램</p>
<p> </p>
<p>객체지향(OOP, object-oriented programming)</p>
<p> - 객체지향 프로그램은 개발하려는 것을 기능별로 묶어 모듈화로 하드웨어가 중복 연산되지 않게 함</p>
<p> - 모듈을 재활용하는 방식이므로 하드웨어 처리량이 줄어듬</p>
<p> - 데이터와 절차를 하나를 덩어리로 묶어서 사용, 컴퓨터 부품을 하나씩 사서 조립하는것과 같음</p>
<p> </p>
<p> 객체지향 특징(추상화, 캡슐화(모듈화), 상속, 다양성)</p>
<p> - 추상화 : abstract(추상)로 선언된 클래스를 뜻함.</p>
<p>              오직 상속을 하는 용도로만 사용할 수 있슴.</p>
<p>              메소드의 몸체부분만 선언된 메소드를 추상메소드라고 하는데, 추상메소드를 하나라도 가지고 있는 클래스는 추상 클래스로 선언됨</p>
<p>              protected(보호)로 선언되었다면 상속하는 클래스도 반드시 그 메소드를 public(공공)이나 protected(보호) 접근자로 재정의 해야 함.</p>
<p> - 모듈화 : 데이터와 알고리즘을 하나의 묶음으로 정리</p>
<p>              데이터를 감추고 외부와 상호작용은 메소드를 통하는 방법</p>
<p>              라이브러리를 통해 업그레이드를 하는게 관리하기 좋음</p>
<p> - 메소드 : 실행시킬 프로시저로서 객체지향에서 사용되는 것</p>
<p>              메세지를 보내 메소드를 수행시키고, 이로서 통신을 함.</p>
<p> - 상속 : 이미 작성된 클래스를 이어 받아서 새로운 클래스를 생성하는 기법(기존코드 재활용 방식)</p>
<p>             하드웨어의 처리량을 줄이기 위함</p>
<p> - 다양성 : 하나의 방법으로 많은 상황에 대처하는 기법</p>
<p>              개념적으로 동일한 작업을 하는 함수들에 똑같은 이름을 부여 할 수 있으므로 코드를 간소화 시킴</p>
<p> - 장점 : 신뢰성있는 소프트웨어를 쉽게 작성 할 수 있슴.</p>
<p>            코드를 재사용하기 쉬움.</p>
<p>            업그레드가 용이하고 디버깅이 쉬움</p>
<p> </p>
<p> </p>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-05-16T17:09:05+09:00</dc:date>
</item>


<item>
<title>[ php ] 스코프 해결 연산자 / Scope Resolution Operator (::)</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=80</link>
<description><![CDATA[<p> Scope Resolution Operator (Paamayim Nekudotayim이라고도 함) 또는 더 간단한 용어인 이중 콜론은 </p>
<p>정적 , 상수 및 재정의 된 속성 또는 클래스의 메서드에 대한 액세스를 허용하는 토큰입니다 .</p>
<p>클래스 정의 외부에서 이러한 항목을 참조 할 때 클래스 이름을 사용하십시오.</p>
<p>PHP 5.3.0부터 변수를 사용하여 클래스를 참조 할 수 있습니다. 변수의 값은 키워드가 될 수 없습니다 (예 : 자기 , 부모 및 정적 ).</p>
<p>Paamayim Nekudotayim은 처음에 이중 콜론의 이름을 짓는 이상한 선택처럼 보였습니다. 그러나 Zend Engine 0.5 (PHP 3의 성능을 제공함)를 작성하는 동안 Zend 팀이이를 호출하기로 결정했습니다. 그것은 실제로 이중 콜론을 의미합니다 - 히브리어로!</p>
<p><br /></p>
<p>Example # 1 :: 클래스 정의 외부에서</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>&lt;?php</p>
   <p>class MyClass {</p>
   <p>    const CONST_VALUE = 'A constant value';</p>
   <p>}</p>
   <p>$classname = 'MyClass';</p>
   <p>echo $classname::CONST_VALUE; // As of PHP 5.3.0</p>
   <p>echo MyClass::CONST_VALUE;</p>
   <p>?&gt;</p>
   </div>
<p>self , parent 및 static의 세 가지 특수 키워드 는 클래스 정의 내부에서 속성이나 메서드에 액세스하는 데 사용됩니다.</p>
<p><br /></p>
<p>Example # 2 :: 클래스 정의 내부에서</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>&lt;?php</p>
   <p>class OtherClass extends MyClass</p>
   <p>{</p>
   <p>    public static $my_static = 'static var';</p>
   <p><br /></p>
   <p>    public static function doubleColon() {</p>
   <p>        echo parent::CONST_VALUE . "\n";</p>
   <p>        echo self::$my_static . "\n";</p>
   <p>    }</p>
   <p>}</p>
   <p><br /></p>
   <p>$classname = 'OtherClass';</p>
   <p>$classname::doubleColon(); // As of PHP 5.3.0</p>
   <p><br /></p>
   <p>OtherClass::doubleColon();</p>
   <p>?&gt;</p>
   </div>
<p><br /></p>
<p>확장 클래스가 메소드의 부모 정의를 오버라이드하면 PHP는 부모 메소드를 호출하지 않습니다. 부모 메서드가 호출되는지 여부는 확장 클래스에 달려 있습니다. 이는 생성자 및 소멸자 , 오버로딩 및 Magic 메서드 정의 에도 적용됩니다 .</p>
<p><br /></p>
<p>Example # 3 부모 메소드 호출하기</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>&lt;?php</p>
   <p>class MyClass</p>
   <p>{</p>
   <p>    protected function myFunc() {</p>
   <p>        echo "MyClass::myFunc()\n";</p>
   <p>    }</p>
   <p>}</p>
   <p><br /></p>
   <p>class OtherClass extends MyClass</p>
   <p>{</p>
   <p>    // Override parent's definition</p>
   <p>    public function myFunc()</p>
   <p>    {</p>
   <p>        // But still call the parent function</p>
   <p>        parent::myFunc();</p>
   <p>        echo "OtherClass::myFunc()\n";</p>
   <p>    }</p>
   <p>}</p>
   <p><br /></p>
   <p>$class = new OtherClass();</p>
   <p>$class-&gt;myFunc();</p>
   <p>?&gt; </p>
   </div>
<p><br /></p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-05-07T19:28:06+09:00</dc:date>
</item>


<item>
<title>[ php ] 다음 주소 연결 https 여부 확인 - ( 다음 지도 연결시 오류 부분 )</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=79</link>
<description><![CDATA[<div style="margin:0px;padding:10px;border:1px dotted rgb(144,224,255);color:#ffffff;line-height:1.5;background-color:#3d3c3a;">
   <p>&lt;?php if($_SERVER['HTTPS'] == 'on') { ?&gt;</p>
   <p>    &lt;script type="text/javascript" src="https://ssl.daumcdn.net/dmaps/map_js_init/postcode.v2.js"&gt;&lt;/script&gt;</p>
   <p>&lt;?php } else { ?&gt;</p>
   <p>    &lt;script type="text/javascript" src="http://dmaps.daum.net/map_js_init/postcode.v2.js"&gt;&lt;/script&gt;</p>
   <p>&lt;?php } ?&gt;</p>
   </div>
<p> </p>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-02-08T14:57:22+09:00</dc:date>
</item>


<item>
<title>[ php ] $배열[변수] 부분을 $배열['변수'] 또는 $배열["변수"] 로 변경하는 정규표현식</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=78</link>
<description><![CDATA[<p>$배열[변수] 부분을 $배열['변수'] 또는 $배열["변수"] 를 변경하는 정규표현식</p>
<p>에디터의 바꾸기에서 정규식이나 , regular explession 을 체크하고</p>
<div>바꿀단어 --- &gt;  (.*)\[(.*)\]</div>
<p>변경단어 --- &gt; \1\['\2'\]</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-01-18T09:53:55+09:00</dc:date>
</item>


<item>
<title>[ php ] php 7.x에 대한 상수 정의( define( ) ) 부분에 관하여.......</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=77</link>
<description><![CDATA[<p>이제는 상수도 잘 사용해야 할 것 같습니다.</p>
<p><br /></p>
<p>기존 php 5.x 이하버젼에서는 define('_GNUBOARD_', false); 일때는</p>
<p>defined('_GNUBOARD_') 출력하면 아무것도 뜨지 않았던 걸로 기억을 합니다.</p>
<p><br /></p>
<p>7.X 버젼에서 define('_GNUBOARD_', false); 일때는</p>
<p>defined('_GNUBOARD_') 를 출력해보면 1이라는 숫자가 뜨는군요.</p>
<p>define('_TEST_',''); 빈값일때도 1을 출력하는군요</p>
<p><br /></p>
<div style="margin:0px;padding:10px;border:1px dotted rgb(144,224,255);color:#ffffff;line-height:1.5;background-color:#3d3c3a;">
   <p>define('_GNUBOARD_', false);</p>
   <p>echo "defined_GNUBOARD_ ::: ".defined('_GNUBOARD_')." ::: GNUBOARD ::: "._GNUBOARD_;</p>
   <p>출력 : defined_GNUBOARD_ ::: 1 ::: GNUBOARD :::</p>
   <p><br /></p>
   <p>define('_GNUBOARD_', true);</p>
   <p>echo "defined_GNUBOARD_ ::: ".defined('_GNUBOARD_')." ::: GNUBOARD ::: "._GNUBOARD_;</p>
   <p>출력 : defined_GNUBOARD_ ::: 1 ::: GNUBOARD ::: 1</p>
   <p><br /></p>
   <p>define('_TEST_','');</p>
   <p>echo "_TEST_ ::: ".defined('_TEST_')." ::: _TEST_ ::: "._TEST_;</p>
   <p>출력 : _TEST_ ::: 1 ::: _TEST_ ::: </p>
   </div>
<p><br /></p>
<p>상단에서 define('_INDEX_',TRUE); 와 같은 경우 index 페이지에서는</p>
<p>constant("_INDEX_") 의 값이 존재하지만,</p>
<p>서브페이지에서는 define('_INDEX_',TRUE);  또는 define('_INDEX_', FALSE);로 정의하지 않으므로</p>
<p>서브페이지에서 if(constant("_INDEX_")) 와 같은 구문은 오류가 발생한다.</p>
<p>true와 false의 구분은 defined('_INDEX_')의 값이 1이면 일단 상수에 대한 정의를 내린것으로 본다.</p>
<p>그래서 값이 1이 된다. 이러한 경우 CONSTANT() 함수의 사용은 가능하다.</p>
<p>하지만, 정의되지 않은 페이지에서 CONSTANT()함수를 사용하면 오류가 발생한다.</p>
<p> </p>
<p>※ <span style="color:#ff0000;">고로 상수를 정의 했다면 해당 상수명으로 조건문을 거시고 확인을 해야 할 것 같습니다.</span></p>
<p><span style="color:#ff0000;">그리고 정의되지 않은 상수사용도 더 조심해야 할 것 같습니다.</span></p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2018-12-18T11:00:48+09:00</dc:date>
</item>


<item>
<title>[ php ] searialize(), unserialize() 배열의 직렬화(일렬화), 일반화, 많은 필드를 한개의 필드로 정리하고 싶을 때</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=76</link>
<description><![CDATA[<p>(PHP 4, PHP 5, PHP 7)</p>
<p><b>serialize</b> — 값의 저장 표현을 생성</p>
<p>설명</p>
<p>    string serialize ( mixed $value )</p>
<p>    값의 저장 표현을 생성합니다.</p>
<p>    이는 PHP 값을 저장하거나 전달할 때 자료형이나 구조를 잃어버리지 않게 합니다.</p>
<p>    일렬화된 문자열을 다시 PHP 변수로 만드려면, <a href="http://php.net/manual/kr/function.unserialize.php" target="_blank" rel="nofollow noreferrer noopener"><b>unserialize</b>()</a>를 사용합니다.</p>
<p>인수</p>
<p>    value</p>
<p>    일렬화할 값. serialize()는 resource형을 제외한 모든 형을 다룹니다. 자기 자신을 참조하는 배열을 serialize()할 수도 있습니다. 배열/객체 안의 순환 참조도 일렬화하여 저장됩니다. 그 외의 다른 참조는 읽어버립니다.</p>
<p>    객체를 일렬화할 때, 일렬화 전에 __sleep 멤버 함수를 호출합니다. 이로써 일렬화하기 전에 객체를 마지막으로 정리할 수 있습니다. 마찬가지로, unserialize()을 사용하여 객체를 되돌릴 때는 __wakeup 멤버 함수를 호출합니다.</p>
<p>    Note:</p>
<p>    객체의 private 멤버는 이름 앞에 클래스 이름을 덧붙입니다; protected 멤버는 이름 앞에 '*'를 덧붙입니다. 이런 덧붙인 값은 모두 null 바이트를 가집니다.</p>
<p>반환값</p>
<p>    value의 어디에라도 저장할 수 있는 바이트 스트림 표현을 가지는 문자열을 반환합니다. </p>
<p> </p>
<p>예제) </p>
<p>write페이지에서 일반적으로 값을 넘긴다. post 또는 get</p>
<p>저장되는 페이지에서 $a = serialize($_POST);  또는 $a = serialize($_GET); 과 같은 형태로 저장한다.</p>
<p>종류에 따라 $a = addslashes($a); 로 한번더 처리해줘야 하는 경우도 있다.</p>
<p>불러오는 페이지에서는 $view_a = unserialize($a); 로 사용을 하면 배열의 key 와 value 형태로 변형된다.</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2018-12-06T09:59:45+09:00</dc:date>
</item>


<item>
<title>[ php ] 상대경로와 절대경로, 열린문서의 절대경로, 상대경로, url, uri 나타내기</title>
<link>https://funyphp.com/bbs/board.php?bo_table=php&amp;amp;wr_id=75</link>
<description><![CDATA[<p> 1. 절대경로</p>
<p> - 어떠한 웹페이지나 파일이 가지고 있는 고유한 경로를 말한다.</p>
<p> - 예를들어 https://funyphp.com, C:\users\document\funyphp.jpg 등을 모두 절대 경로라고한다.</p>
<p> - 다르게는 '그 위치'라는 개념이라고 말할 수 있는데 주소라고 생각하면 이해하기 더 쉽다.</p>
<p> - 예를 들어 내가 만약 d:\file 또는 c:\file\img.jpg 등 절대 경로를 알고 있으면 그곳으로 바로 이동하거나 그곳에 있는 파일을 바로 실행 가능하다는 것. </p>
<p> - 따라서, 그건 거기에 있으니깐 실행해(가, 가져와 등등)이 된다.</p>
<p><br /></p>
<p>2. 상대경로</p>
<p> - 상대경로를 풀어서 보면 '현재 위치한 곳을 기준'으로 해서 '그곳의 위치'이다.</p>
<p> - 다시한번 설명하자면 (Web이라고 기준하에) html 파일이 위치한 폴더를 기준으로 상대적인 경로라는 것.</p>
<p> - 예를 들어 C:\users\documents\funyphp라는 폴더 밑에 A라는 폴더와 B라는 폴더가 있다고 가정하고, </p>
<p>   A라는 폴더안에 index.php 파일이 위치한다고 가정하고 현재 내가 B라는 폴더에 위치한다면, </p>
<p>   A폴더 안에 index.php파일을 가져오기 위해서는 B라는 폴더를 기준으로 계산을 한다.</p>
<p>   따라서 ../A/index.php이라고 하여 index.php로 간다는것.</p>
<p> - 참고</p>
<p>   / : 루트</p>
<p>   ./ : 현재 위치</p>
<p>   ../ : 현재 위치의 상단 폴더</p>
<p>   ex) index.php가 C:\aaa\index\a에 위치한다면,</p>
<p>        여기서 / 는 C:\</p>
<p>                 ./ 는 C:\aaa\index</p>
<p>                ../ 는 C:\aaa</p>
<p><br /></p>
<p> - 3가지를 간단히 정리하자면, </p>
<p>   1  '/'    -&gt; 가장 최상의 디렉토리(Web root)</p>
<p>   2  './'   -&gt; 파일이 위치한 현재 디렉토리</p>
<p>   3  '../'  -&gt; 파일이 위치한 디렉토리의 상위 디렉토리</p>
<p> - 만약 두단계 상위 디렉토리로 이동하려면</p>
<p>   '../../'</p>
<p> </p>
<p>[code] </p>
<p>$file_path = realpath(__FILE__); //php파일의 절대 서버 경로</p>
<p>$file_name = basename(__FILE__); //php파일 이름</p>
<p>$path = str_replace(basename(__FILE__), '', $file_path); //php파일 이름을 뺀 절대 서버 경로</p>
<p>$root_path = $_SERVER['DOCUMENT_ROOT']; // 서버의 ROOT 경로</p>
<p> </p>
<p>$file_url = preg_replace("'\/[^/]*\.php$'i", "/", $_SERVER['PHP_SELF']); //php파일의 상대경로</p>
<p>$relative_file_url = $file_url.$php_filename; //$php_filename의 상대경로</p>
<p> </p>
<p>//홈페이지 기본 URI</p>
<p>$url = ($_SERVER['HTTPS'] == 'on')?'https://':'http://';</p>
<p>$url .= ($_SERVER['SERVER_PORT'] != '80')?$_SERVER['HTTP_HOST'].':'.$_SERVER['SERVER_PORT']:$_SERVER['HTTP_HOST']; </p>
<p> </p>
<p>$uri = $url.$file_url; //php파일이 있는 웹경로</p>
<p> </p>
<p>$file_url = $uri.$php_filename;</p>
<p>$file_uri =  $url.$_SERVER['REQUEST_URI'];</p>
<p>[/code]</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2018-11-07T14:28:38+09:00</dc:date>
</item>

</channel>
</rss>
