<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Life["Breathing"] &#187; php</title>
	<atom:link href="http://blog.hsin.tw/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hsin.tw</link>
	<description></description>
	<lastBuildDate>Fri, 06 Jan 2012 10:42:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>[CodeIgniter] extend CI_Model</title>
		<link>http://blog.hsin.tw/2011/codeigniter-extend-ci_model/</link>
		<comments>http://blog.hsin.tw/2011/codeigniter-extend-ci_model/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 08:43:53 +0000</pubDate>
		<dc:creator>hsin</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.hsin.tw/?p=474</guid>
		<description><![CDATA[建立自己的程式庫 在這頁寫到可以擴充原有的程式庫，我想增加幾個基本的Method（CRUD之類的）到原有的CI_Model，這樣就不用每個Model檔案都寫一遍。雖然這頁說明寫說要放在 application/libraries 中，但是CodeIgniter 2的Model已經是歸在Core中了，所以其實是要把MY_Model.php放在 application/core 才對。 1. 建立一個新檔案 MY_Model.php（MY_可在application/config/config.php修改） 2. 將檔案放在 application/core 中 3. 之後新的Model檔案要extends的是MY_Model，而不是CI_Model。 收工]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codeigniter.org.tw/user_guide/general/creating_libraries.html" target="_blank">建立自己的程式庫</a><br />
<span id="more-474"></span><br />
在這頁寫到可以擴充原有的程式庫，我想增加幾個基本的Method（CRUD之類的）到原有的CI_Model，這樣就不用每個Model檔案都寫一遍。雖然這頁說明寫說要放在 <strong>application/libraries </strong>中，但是CodeIgniter 2的Model已經是歸在Core中了，所以其實是要把MY_Model.php放在 <strong>application/core </strong>才對。</p>
<p>1. 建立一個新檔案 MY_Model.php（<strong>MY_</strong>可在<strong>application/config/config.php</strong>修改）</p>
<pre class="brush: php; title: ; notranslate">
class MY_Model extends CI_Model{
    function __construct()    {
        parent::__construct();
    }

    // some methods
}
</pre>
<p>2. 將檔案放在 <strong>application/core</strong> 中</p>
<p>3. 之後新的Model檔案要extends的是MY_Model，而不是CI_Model。</p>
<p>收工</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hsin.tw/2011/codeigniter-extend-ci_model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codeigniter開啟csrf protection時 傳送表單(or ajax)</title>
		<link>http://blog.hsin.tw/2011/codeigniter-csrf-protection-form-ajax/</link>
		<comments>http://blog.hsin.tw/2011/codeigniter-csrf-protection-form-ajax/#comments</comments>
		<pubDate>Wed, 18 May 2011 10:37:42 +0000</pubDate>
		<dc:creator>hsin</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.hsin.tw/?p=449</guid>
		<description><![CDATA[在CI 2.0中有一個csrf(Cross Site Request Forgery) protection的功能 如果打開這個功能的話 post表單給server 會吐 error 500 An Error Was Encountered The action you have requested is not allowed. 會無法執行 這時候要在表單傳送的數值中加入一個token的值 才能正常使用表單功能 可以在application/config/config.php中找到下面這幾行 原本$config['csrf_protection']預設是FALSE 改成TRUE就可以打開了 開啟之後 會自動幫你在cookie中存一個值 cookie的name在上面說的config.php中可以設定 之後傳送表單就要連這個token一起傳才行 以下用jquery的ajax功能示範 getCookie()是用js取出cookie的值 這是在網路上找到的 可以直接拿去用 而csrf_test_name就是在config.php中可以設定的參數 將這個cookie抓出來一起送出表單 就可以正常使用了 &#8230; <a href="http://blog.hsin.tw/2011/codeigniter-csrf-protection-form-ajax/">繼續閱讀 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>在CI 2.0中有一個csrf(Cross Site Request Forgery) protection的功能<br />
<span id="more-449"></span><br />
如果打開這個功能的話<br />
post表單給server 會吐 error 500<br />
An Error Was Encountered<br />
The action you have requested is not allowed.<br />
會無法執行<br />
這時候要在表單傳送的數值中加入一個token的值<br />
才能正常使用表單功能</p>
<p>可以在application/config/config.php中找到下面這幾行</p>
<pre class="brush: php; title: ; notranslate">
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
</pre>
<p>原本$config['csrf_protection']預設是FALSE 改成TRUE就可以打開了<br />
開啟之後 會自動幫你在cookie中存一個值<br />
cookie的name在上面說的config.php中可以設定<br />
之後傳送表單就要連這個token一起傳才行</p>
<p>以下用jquery的ajax功能示範</p>
<pre class="brush: jscript; title: ; notranslate">
$(function(){
    $('#btn').click(function(){
	    $.ajax({
	        type:'POST'
	        ,url:'/ajax' //ajax接收的server端
	        ,data:$('#form').serialize()+'&amp;csrf_test_name='+ getCookie('csrf_test_name')
	        ,success:function(data){
			alert(data.msg);
	        }
	        ,dataType:'json'
	    });
    });
});

function getCookie(name){
    var arr = document.cookie.match(new RegExp(&quot;(^| )&quot;+name+&quot;=([^;]*)(;|$)&quot;));
    if(arr != null) return unescape(arr[2]); return null;
}
</pre>
<p>getCookie()是用js取出cookie的值<br />
這是在網路上找到的 可以直接拿去用</p>
<p>而csrf_test_name就是在config.php中可以設定的參數<br />
將這個cookie抓出來一起送出表單<br />
就可以正常使用了</p>
<p>有任何指教歡迎留言~</p>
<p>referer : <a href="http://ericlbarnes.com/blog/post/codeigniter_csrf_protection_with_ajax">http://ericlbarnes.com/blog/post/codeigniter_csrf_protection_with_ajax</a></p>
<p>==================<br />
update<br />
==================<br />
依據這頁<a href="http://codeigniter.com/forums/viewthread/163976/">http://codeigniter.com/forums/viewthread/163976/</a> 某樓提供的方法<br />
可以使用以下方法取得token_name以及值</p>
<pre class="brush: php; title: ; notranslate">
&lt;input type=&quot;hidden&quot; name=&quot;&lt;?php echo $this-&gt;security-&gt;csrf_token_name?&gt;&quot; value=&quot;&lt;?php echo $this-&gt;security-&gt;csrf_hash?&gt;&quot; /&gt;
</pre>
<p>滿方便的<br />
另外還有一點就是<br />
如果是用CI內建的form helper<br />
在開啟csrf_protection時 會自動幫你加入這個token的值<br />
我本身是沒有在用啦<br />
如果有在用的人 就會比較方便囉 (或許根本就不會發現這個問題XD)<br />
==================<br />
以上是update的資訊<br />
==================</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hsin.tw/2011/codeigniter-csrf-protection-form-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 取得EXIF中GPS的經緯度</title>
		<link>http://blog.hsin.tw/2011/php-exif-gps-latitude-longitude/</link>
		<comments>http://blog.hsin.tw/2011/php-exif-gps-latitude-longitude/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 02:31:32 +0000</pubDate>
		<dc:creator>hsin</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[exif]]></category>
		<category><![CDATA[gps]]></category>

		<guid isPermaLink="false">http://blog.hsin.tw/?p=422</guid>
		<description><![CDATA[在php4.2之後有一個函數可以取得EXIF的內容 exif_read_data() 只可以用在JPG跟TIFF的圖片 餵其他類型的會絡賽 首先當然就是先取得EXIF的內容 第一個欄位是檔案 第二個欄位是要取哪些項目(可以去文件看)的資訊 第三個是將各項目的值以array返回 都是各有三個元素的array 各代表度,分,秒 但是他們都長得怪怪的 會是分數的形式 所以需要再將他們解析 找到一篇解法 PHP extract GPS EXIF data 把兩個值丟進去就可以了 也就是這樣 就可以再做之後的應用啦 可以用google map確認一下對不對 http://maps.google.com.tw/?q=25 2 52.8,121 33 58.2 ===update=== 發現還要判斷南北半球 東西半球]]></description>
			<content:encoded><![CDATA[<p>在php4.2之後有一個函數可以取得EXIF的內容<br />
<span id="more-422"></span><br />
<a href="http://php.net/manual/en/function.exif-read-data.php">exif_read_data()</a><br />
只可以用在JPG跟TIFF的圖片<br />
餵其他類型的會絡賽</p>
<p>首先當然就是先取得EXIF的內容<br />
第一個欄位是檔案 第二個欄位是要取哪些項目(可以去文件看)的資訊<br />
第三個是將各項目的值以array返回</p>
<pre class="brush: php; title: ; notranslate">
$exif = exif_read_data('my.jpg', 0, true);
//緯度
$latitude = $exif['GPS']['GPSLatitude'];
//經度
$longitude = $exif['GPS']['GPSLongitude'];
</pre>
<p>都是各有三個元素的array 各代表度,分,秒<br />
但是他們都長得怪怪的 會是分數的形式<br />
所以需要再將他們解析<br />
找到一篇解法<br />
<a href="http://stackoverflow.com/questions/2526304/php-extract-gps-exif-data">PHP extract GPS EXIF data</a><br />
把兩個值丟進去就可以了</p>
<pre class="brush: php; title: ; notranslate">
//Pass in GPS.GPSLatitude or GPS.GPSLongitude or something in that format
function getGps($exifCoord)
{
  $degrees = count($exifCoord) &gt; 0 ? gps2Num($exifCoord[0]) : 0;
  $minutes = count($exifCoord) &gt; 1 ? gps2Num($exifCoord[1]) : 0;
  $seconds = count($exifCoord) &gt; 2 ? gps2Num($exifCoord[2]) : 0;

  //normalize
  $minutes += 60 * ($degrees - floor($degrees));
  $degrees = floor($degrees);

  $seconds += 60 * ($minutes - floor($minutes));
  $minutes = floor($minutes);

  //extra normalization, probably not necessary unless you get weird data
  if($seconds &gt;= 60)
  {
    $minutes += floor($seconds/60.0);
    $seconds -= 60*floor($seconds/60.0);
  }

  if($minutes &gt;= 60)
  {
    $degrees += floor($minutes/60.0);
    $minutes -= 60*floor($minutes/60.0);
  }

  return array('degrees' =&gt; $degrees, 'minutes' =&gt; $minutes, 'seconds' =&gt; $seconds);
}

function gps2Num($coordPart)
{
  $parts = explode('/', $coordPart);

  if(count($parts)) &lt;= 0)
    return 0;
  if(count($parts)) == 1)
    return $parts[0];

  return floatval($parts[0]) / floatval($parts[1]);
}
</pre>
<p>也就是這樣</p>
<pre class="brush: php; title: ; notranslate">
$latitude = getGps($latitude);
$longitude = getGps($longitude);
/*
output:
緯度
度：$latitude['degrees']
分：$latitude['minutes']
秒：$latitude['seconds']
經度
度：$longitude['degrees']
分：$longitude['minutes']
秒：$longitude['seconds']
*/
</pre>
<p>就可以再做之後的應用啦<br />
可以用google map確認一下對不對<br />
<a href="http://maps.google.com.tw/?q=25 2 52.8,121 33 58.2">http://maps.google.com.tw/?q=25 2 52.8,121 33 58.2</a></p>
<p>===update===<br />
發現還要判斷南北半球 東西半球</p>
<pre class="brush: php; title: ; notranslate">
//這會出現S或是N 也就是南北半球
$exif['GPS']['GPSLatitudeRef'];
//如果是S的話 緯度還要乘-1喔

//這會出現W或是E 也就是東西半球
$exif['GPS']['GPSLongitudeRef'];
//如果是W的話 經度還要乘-1喔
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.hsin.tw/2011/php-exif-gps-latitude-longitude/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Codeigniter 使用flash上傳時 會吃不到session跟cookie</title>
		<link>http://blog.hsin.tw/2011/codeigniter-flash-upload-session-cookie-losing/</link>
		<comments>http://blog.hsin.tw/2011/codeigniter-flash-upload-session-cookie-losing/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 13:26:50 +0000</pubDate>
		<dc:creator>hsin</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Codeigniter]]></category>

		<guid isPermaLink="false">http://blog.hsin.tw/?p=419</guid>
		<description><![CDATA[很巧的我就遇上了 我的圖片上傳是用這個uploadify 用ajax來作 就可以不用換頁的上傳圖片 但是很巧的他就是用flash上傳 而我也剛好用CI這個framework 試了很久 session跟cookie就是吃不到 後來在CI的forum找到有人說有這個問題 Session and cookie information lost when using Flash 看起來是還沒有修好 雖然是有解法 但是是要修改core classes裡的東西 似乎不太妥當 所以目前就先改別的方式囉 如果有好心人知道怎麼解的話 也請不吝的告訴我~拜託啦~]]></description>
			<content:encoded><![CDATA[<p>很巧的我就遇上了<br />
<span id="more-419"></span><br />
我的圖片上傳是用這個<a href="http://www.uploadify.com/">uploadify</a><br />
用ajax來作<br />
就可以不用換頁的上傳圖片<br />
但是很巧的他就是用flash上傳<br />
而我也剛好用CI這個framework<br />
試了很久<br />
session跟cookie就是吃不到<br />
後來在CI的forum找到有人說有這個問題<br />
<a href="http://codeigniter.com/forums/viewthread/77044/">Session and cookie information lost when using Flash</a><br />
看起來是還沒有修好<br />
雖然是有解法<br />
但是是要修改core classes裡的東西<br />
似乎不太妥當<br />
所以目前就先改別的方式囉</p>
<p>如果有好心人知道怎麼解的話<br />
也請不吝的告訴我~拜託啦~</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hsin.tw/2011/codeigniter-flash-upload-session-cookie-losing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zeus Request Rewriting : 301 redirect</title>
		<link>http://blog.hsin.tw/2010/zeus-request-rewriting-301-redirect/</link>
		<comments>http://blog.hsin.tw/2010/zeus-request-rewriting-301-redirect/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 08:02:10 +0000</pubDate>
		<dc:creator>hsin</dc:creator>
				<category><![CDATA[server]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[zeus]]></category>

		<guid isPermaLink="false">http://blog.hsin.tw/?p=401</guid>
		<description><![CDATA[這次的目標是把 http://myid.domainaaa.com 這個網址 轉到 http://www.domainbbb.com/myid 以下就是要寫在Request Rewriting裡的 [0-9a-zA-Z]{1,30}可以自己替換正規表示式的條件 這裡是挑出1~30個字的大小寫英文或數字 如果符合的話才會轉過去 參考資料： (好多XD) http://www.codingforums.com/showthread.php?t=156570 http://support.zeus.com/zws/examples/2006/03/07/rewrite_redirecting http://www.register365.com/knowledge/scripting/rewrite_scripts/528-zeus_rewrite_rules_user_guide.html http://www.chinazeus.com/read.php?tid=6 銅廠加印 同場加映 php header的301 redirect方法 怎麼php的簡潔很多XD]]></description>
			<content:encoded><![CDATA[<p>這次的目標是把<br />
<span id="more-401"></span><br />
http://<span style="color:#000099;">myid</span><span style="color:#009900;">.domainaaa.com</span><br />
這個網址<br />
轉到<br />
http://www<span style="color:#990000;">.domainbbb.com</span>/<span style="color:#000099;">myid</span><br />
以下就是要寫在Request Rewriting裡的</p>
<pre class="brush: plain; title: ; notranslate">
RULE_0_START:
match IN:Host into $ with ^([0-9a-zA-Z]{1,30})\.domainaaa\.com
if not matched then goto RULE_0_END
if matched
	set URL= http://www.domainbbb.com/$1
	set RESPONSE = 301
	set OUT:Location = %{URL}
	set BODY = &lt;a href=&quot;%{URL}&quot;&gt;go&lt;/a&gt; \n
endif
goto END
RULE_0_END:
</pre>
<p>[0-9a-zA-Z]{1,30}可以自己替換正規表示式的條件<br />
這裡是挑出1~30個字的大小寫英文或數字<br />
如果符合的話才會轉過去</p>
<p>參考資料： (好多XD)<br />
<a href="http://www.codingforums.com/showthread.php?t=156570">http://www.codingforums.com/showthread.php?t=156570</a><br />
<a href="http://support.zeus.com/zws/examples/2006/03/07/rewrite_redirecting">http://support.zeus.com/zws/examples/2006/03/07/rewrite_redirecting</a><br />
<a href="http://www.register365.com/knowledge/scripting/rewrite_scripts/528-zeus_rewrite_rules_user_guide.html">http://www.register365.com/knowledge/scripting/rewrite_scripts/528-zeus_rewrite_rules_user_guide.html</a><br />
<a href="http://www.chinazeus.com/read.php?tid=6">http://www.chinazeus.com/read.php?tid=6</a></p>
<p><del datetime="2010-06-03T07:14:43+00:00">銅廠加印</del> 同場加映<br />
php header的301 redirect方法</p>
<pre class="brush: php; title: ; notranslate">
header(&quot;Location: http://www.domainbbb.com&quot;,TRUE,301);
exit;
</pre>
<p>怎麼php的簡潔很多XD</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hsin.tw/2010/zeus-request-rewriting-301-redirect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在IE中看iframe嵌入不同網域的網頁時 會無法使用cookie的問題</title>
		<link>http://blog.hsin.tw/2010/ie-blocking-iframe-cookie/</link>
		<comments>http://blog.hsin.tw/2010/ie-blocking-iframe-cookie/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 10:33:09 +0000</pubDate>
		<dc:creator>hsin</dc:creator>
				<category><![CDATA[瀏覽器]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.hsin.tw/?p=374</guid>
		<description><![CDATA[有些問題真的是不遇到就真的不知道會這樣阿~ 這幾天遇到這個問題 iframe如果嵌入了不同網域的網頁 則以IE看這網頁時 會無法使用cookie 應該是某些安全性的問題 但是只有IE會這樣就&#8230;&#8230;&#8230;&#8230;&#8230;&#124;&#124;&#124; 所幸經過咕狗大神的提點之後 在這裡找到了解決的辦法 IE Blocking iFrame Cookies 以php的解決方法來說 只要在每個會嵌入在iframe中的頁面裡加上這行 就可以囉 其他還有 ASP.NET、Django、JSP的寫法就去原始頁面看囉]]></description>
			<content:encoded><![CDATA[<p>有些問題真的是不遇到就真的不知道會這樣阿~<br />
<span id="more-374"></span><br />
這幾天遇到這個問題<br />
iframe如果嵌入了不同網域的網頁<br />
則以IE看這網頁時 會無法使用cookie<br />
應該是某些安全性的問題<br />
但是只有IE會這樣就&#8230;&#8230;&#8230;&#8230;&#8230;|||</p>
<p>所幸經過咕狗大神的提點之後<br />
在這裡找到了解決的辦法<br />
<a href="http://adamyoung.net/IE-Blocking-iFrame-Cookies" target="_blank">IE Blocking iFrame Cookies</a></p>
<p>以php的解決方法來說<br />
只要在每個會嵌入在iframe中的頁面裡加上這行</p>
<pre class="brush: php; title: ; notranslate">
header('P3P:CP=&quot;IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT&quot;');
</pre>
<p>就可以囉</p>
<p>其他還有<br />
ASP.NET、Django、JSP的寫法就去原始頁面看囉</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hsin.tw/2010/ie-blocking-iframe-cookie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php 將數字補零 使用str_pad</title>
		<link>http://blog.hsin.tw/2009/php-pad-a-string/</link>
		<comments>http://blog.hsin.tw/2009/php-pad-a-string/#comments</comments>
		<pubDate>Mon, 11 May 2009 11:09:45 +0000</pubDate>
		<dc:creator>hsin</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.hsin.tw/?p=225</guid>
		<description><![CDATA[用php 補零去咕狗 會找到有些使用sprintf函式的方法 像下面這樣 其實php本身就有一個專門可以補齊位數的函式 : str_pad() string str_pad ( string $input , int $pad_length [, string $pad_string= " " [, int $pad_type= STR_PAD_RIGHT ]] ) $input : 原字串 $pad_length : 補齊後的位數 $pad_string : 用來補齊的字串 $pad_type : 補齊的方式 有三種，STR_PAD_RIGHT (由右邊補)、STR_PAD_LEFT &#8230; <a href="http://blog.hsin.tw/2009/php-pad-a-string/">繼續閱讀 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>用<a href="http://www.google.com.tw/search?q=php+%E8%A3%9C%E9%9B%B6&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=org.mozilla:zh-TW:official&#038;client=firefox-a" target="_blank">php 補零</a>去咕狗<br />
<span id="more-225"></span><br />
會找到有些使用sprintf函式的方法 像下面這樣</p>
<pre class="brush: php; title: ; notranslate">
$var = 1;
echo sprintf(&quot;%02d&quot;, $var);
</pre>
<p>其實php本身就有一個專門可以補齊位數的函式 : <a href="http://tw2.php.net/str_pad" target="_blank">str_pad()</a></p>
<p>string str_pad  ( string $input  , int $pad_length  [, string $pad_string= " "  [, int $pad_type= STR_PAD_RIGHT  ]] )</p>
<p>$input : 原字串<br />
$pad_length : 補齊後的位數<br />
$pad_string : 用來補齊的字串<br />
$pad_type : 補齊的方式 有三種，STR_PAD_RIGHT (由右邊補)、STR_PAD_LEFT (由左邊補)、STR_PAD_BOTH (左右兩邊都補)， 預設為STR_PAD_RIGHT</p>
<p>所以其實不只可以補零，要補什麼字都可以<br />
而以補零來舉例的話就是</p>
<pre class="brush: php; title: ; notranslate">
$value = 7;
//將數字由左邊補零至三位數
$value = str_pad($value,3,'0',STR_PAD_LEFT);
echo $value;
// 結果會印出 007;

//下面這是document裡的例子
$input = &quot;Alien&quot;;
echo str_pad($input, 10);                      // produces &quot;Alien     &quot;
echo str_pad($input, 10, &quot;-=&quot;, STR_PAD_LEFT);  // produces &quot;-=-=-Alien&quot;
echo str_pad($input, 10, &quot;_&quot;, STR_PAD_BOTH);   // produces &quot;__Alien___&quot;
echo str_pad($input, 6 , &quot;___&quot;);               // produces &quot;Alien_&quot;
</pre>
<p>這樣應該就可以瞭解這個函式的用法了~</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hsin.tw/2009/php-pad-a-string/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php 設定跨子網域的SESSION</title>
		<link>http://blog.hsin.tw/2009/php-pass-session-data-between-subdomains/</link>
		<comments>http://blog.hsin.tw/2009/php-pass-session-data-between-subdomains/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 02:09:33 +0000</pubDate>
		<dc:creator>hsin</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.hsin.tw/?p=218</guid>
		<description><![CDATA[要在php中設定可以跨子網域使用同樣的SESSION 可以在php.ini中多加一行 要記得網域前的 . 喔 如果不能修改php.ini的話 就在每個要跨子網域的程式中加入下面這行 都要在session_start()之前喔 同樣的 網域前的 . 也是不能省的~ 這只能使用在不同子網域的同網域中喔 就是AAA.mydomain.com跟BBB.mydomain.com可以通 AA.mydomain.com跟BB.yourdomain.com不能通 因為是不同網域 參考資訊：Pass Sessions between subdomains in php]]></description>
			<content:encoded><![CDATA[<p>要在php中設定可以跨子網域使用同樣的SESSION<br />
<span id="more-218"></span><br />
可以在php.ini中多加一行</p>
<pre class="brush: plain; title: ; notranslate">

session.cookie_domain = .mydomain.com
</pre>
<p>要記得網域前的 <strong>.</strong> 喔</p>
<p>如果不能修改php.ini的話<br />
就在每個要跨子網域的程式中加入下面這行</p>
<pre class="brush: php; title: ; notranslate">

ini_set(&quot;session.cookie_domain&quot;, &quot;.mydomain.com&quot;);
</pre>
<p>都要在session_start()之前喔<br />
同樣的 網域前的 <strong>.</strong> 也是不能省的~</p>
<p>這只能使用在不同子網域的同網域中喔<br />
就是AAA<span style="color:#0000cc;">.mydomain.com</span>跟BBB<span style="color:#0000cc;">.mydomain.com</span>可以通<br />
AA<span style="color:#0000cc;">.mydomain.com</span>跟BB<span style="color:#cc0000;">.yourdomain.com</span>不能通 因為是不同網域</p>
<p>參考資訊：<a target="_blank" href="http://www.madcarrot.co.uk/2005/08/pass_sessions_b.html">Pass Sessions between subdomains in php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hsin.tw/2009/php-pass-session-data-between-subdomains/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rss note</title>
		<link>http://blog.hsin.tw/2009/rss-note/</link>
		<comments>http://blog.hsin.tw/2009/rss-note/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 06:08:04 +0000</pubDate>
		<dc:creator>hsin</dc:creator>
				<category><![CDATA[rss]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[瀏覽器]]></category>

		<guid isPermaLink="false">http://blog.hsin.tw/?p=160</guid>
		<description><![CDATA[一些關於rss的東西 RSS 2.0 Specification( RSS2.0规范 、 RSS2.0技术规范摘录 ) PHP 產生 RSS/ATOM pubDate/created 所需格式 PHP Universal Feed Generator (supports RSS 1.0, RSS 2.0 and ATOM) 讓瀏覽器偵測到rss feed 要在&#60;head&#62;&#60;/head&#62;裡面加上這行 &#60;link rel="alternate" type="application/rss+xml" title="標題" href="rss路徑" /&#62; 可以有不只一個feed 有幾個寫幾行 CDATA 區段 [XML 標準] 加上&#60;![CDATA[ &#8230; <a href="http://blog.hsin.tw/2009/rss-note/">繼續閱讀 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>一些關於rss的東西<br />
<span id="more-160"></span><br />
<a href="http://www.rssboard.org/rss-specification" target="_blank">RSS 2.0 Specification</a>( <a href="http://www.irsser.com/article.asp?id=33" target="_blank">RSS2.0规范</a> 、 <a href="http://www.cnbruce.com/blog/showlog.asp?log_id=949&amp;cat_id=34" target="_blank">RSS2.0技术规范摘录</a> )<br />
<a href="http://plog.longwin.com.tw/programming/2008/04/24/php_rss_atom_date_format_generator_2008" target="_blank">PHP 產生 RSS/ATOM pubDate/created 所需格式</a><br />
<a href="http://www.ajaxray.com/blog/2008/03/08/php-universal-feed-generator-supports-rss-10-rss-20-and-atom/" target="_blank">PHP Universal Feed Generator (supports RSS 1.0, RSS 2.0 and ATOM)</a></p>
<p>讓瀏覽器偵測到rss feed<br />
要在&lt;head&gt;&lt;/head&gt;裡面加上這行<br />
&lt;link rel="alternate" type="application/rss+xml" title="標題" href="rss路徑" /&gt;<br />
可以有不只一個feed<br />
有幾個寫幾行</p>
<p><a href="http://msdn.microsoft.com/zh-tw/library/ms256076(VS.80).aspx" target="_blank">CDATA 區段 [XML 標準]</a><br />
加上&lt;![CDATA[ 內容 ]]&gt; 這段的不會被XML解析</p>
<p>在<a href="http://www.php.net/date" target="_blank">PHP的date()函數</a>中可使用date("r")來表示rss規範中的時間<br />
rss規範裡的日期是依照<a href="http://asg.web.cmu.edu/rfc/rfc822.html" target="_blank">RFC 822</a>的格式<br />
而date("r")是依照<a class="link external" href="http://www.faqs.org/rfcs/rfc2822" target="_blank">RFC 2822</a><br />
兩者對於時間的差異是在年份<br />
前者是顯示兩位數 後者是顯示四位數<br />
所以可以直接使用date("r")</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hsin.tw/2009/rss-note/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php 傳送get到別的URL並取得回應內容 使用fsockopen</title>
		<link>http://blog.hsin.tw/2009/php-get-method-fsockopen/</link>
		<comments>http://blog.hsin.tw/2009/php-get-method-fsockopen/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 11:42:04 +0000</pubDate>
		<dc:creator>hsin</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.hsin.tw/?p=140</guid>
		<description><![CDATA[在這篇有提到傳送post的用法 另外說到如果只是要傳送get就可以直接使用fopen或是file_get_contents函式直接取得網頁內容 BUT！！！ 這兩天遇到了一個問題 如果因為安全性的關係 要把php.ini中的allow_url_fopen關起來(也就是off) 那就不能使用前述的函式來取得網頁內容 所以只好找另外的方法 也就是使用fsockopen模擬傳送~ (鏘鏘鏘～) 以下是php部份 參考資訊：http://www.maorr.com/read.php/447.htm]]></description>
			<content:encoded><![CDATA[<p>在<a target="_blank" href="http://blog.hsin.tw/2009/php-post-method-fsockopen/">這篇</a>有提到傳送post的用法<br />
<span id="more-140"></span><br />
另外說到如果只是要傳送get就可以直接使用fopen或是file_get_contents函式直接取得網頁內容<br />
BUT！！！<br />
這兩天遇到了一個問題<br />
如果因為安全性的關係<br />
要把php.ini中的allow_url_fopen關起來(也就是off)<br />
那就不能使用前述的函式來取得網頁內容<br />
所以只好找另外的方法<br />
也就是使用fsockopen模擬傳送~<br />
(鏘鏘鏘～)</p>
<p>以下是php部份</p>
<pre class="brush: php; title: ; notranslate">
function SendGET($_url){
  $url = parse_url($_url);
  $contents = '';
  $url_port = $url['port']==''?80:$url['port'];
  $fp = fsockopen($url['host'],$url_port);
  if($fp){
    $_request = $url['path'].($url['query']==''?'':'?'.$url['query']).($url['fragment']==''?'':'#'.$url['fragment']);
    fputs($fp,'GET '.(($_request=='')?'/':$_request).&quot; HTTP/1.0\r\n&quot;);
    fputs($fp,&quot;Host: &quot;.$url['host'].&quot;\n&quot;);
    fputs($fp,&quot;Content-type: application/x-www-form-urlencoded\n&quot;);
    fputs($fp,&quot;Connection: close\n\n&quot;);
    $line = fgets($fp,1024);
    if(!eregi(&quot;^HTTP/1\.. 200&quot;, $line)) return;
    else{
      $results = '';
      $contents = '';
      $inheader = 1;
      while(!feof($fp)){
        $line = fgets($fp,2048);
        if($inheader&amp;&amp;($line == &quot;\n&quot; || $line == &quot;\r\n&quot;)){
          $inheader = 0;
        }elseif(!$inheader){
          $contents .= $line;
        }
      }
      fclose($fp);
    }
  }
  return $contents;
}
</pre>
<pre class="brush: php; title: ; notranslate">
//使用方式很簡單
$url = 'http://someone.com:80/index.php?mode=go&amp;id=hsin#top';
//把網址填入參數即可
$_result = SendGET($url);
//回傳的值就是內容
print_r($_result);
</pre>
<p>參考資訊：<a target="_blank" href="http://www.maorr.com/read.php/447.htm">http://www.maorr.com/read.php/447.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hsin.tw/2009/php-get-method-fsockopen/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

