tag:blogger.com,1999:blog-28578519794161631312024-02-22T00:13:33.513+08:00Bruce's BlogBruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.comBlogger67125tag:blogger.com,1999:blog-2857851979416163131.post-34056325866971482312012-11-15T01:18:00.001+08:002012-11-15T01:18:31.567+08:00快速取得facebook粉絲團資料粉絲團<br />
https://www.facebook.com/vieshow<br />
<br />
graph<br />
http://graph.facebook.com/vieshow<br />
<br />
就這樣
Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-29913184447987247282012-08-20T09:40:00.001+08:002012-08-20T09:40:17.026+08:00php float 處理處理facebook id時因為數字過大會轉成科學計數方式呈現1.111E+12之類的<br />
<br />
處理方式<br />
修改 php.ini <br />
precision = 24 <br />
<br />
或在 code裡<br />
<br />
<code>
<span class="st"> <em>ini_set</em>('<em>precision</em>',24);</span><br />
</code>
Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-28584033702184681602012-06-18T15:56:00.004+08:002012-06-18T15:57:00.141+08:00建立透明png建立透明png<br />
<code> $im = imagecreatetruecolor($width,$height);<br /> imagealphablending($im,true);<br /> $transparent = imagecolorallocatealpha($im,0,0,0,127); <br /> imagefill($im,0,0,$transparent); <br /> imagesavealpha($im,true);<br /><br /> header("Content-Type: image/png");<br /> imagepng($im);<br /> imagedestroy($im);
</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-37520767589656983902012-06-14T23:14:00.000+08:002012-06-14T23:14:04.995+08:00jquery判斷瀏覽器參考 http://api.jquery.com/jQuery.browser/<br />
判斷瀏覽器可以很快速方便<br />
<code>
if ( $.browser.msie ){<br />
alert('IE跑不快');<br />
}
</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-36374774186231101382012-06-07T11:45:00.002+08:002012-06-07T11:45:41.955+08:00FQL console 工具使用Facebook FQL API總算有方便官方工具 <br />
https://developers.facebook.com/tools/explorer/<br />
1. 右上方的Application選好要測試的app<br />
2. 點選左邊的 FQL Query<br />
3. 輸入框裡輸入 select name from user where uid=me()<br />
4. 按下右邊的Submit<br />
即可看到回傳的資料<br />
<br />
<code>
{<br /> "data": [<br /> {<br /> "name": <span class="json_string">"Bruce Tseng"</span><br /> }<br /> ]<br />}<br />
</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com3tag:blogger.com,1999:blog-2857851979416163131.post-46808786511851876182012-06-07T11:36:00.001+08:002012-06-07T11:36:27.646+08:00foursquare venues platform 地標資料foursquare venues platform 提供不需認證即可取得資料的API<br />
每小時可連線五千次<br />
https://developer.foursquare.com/overview/venues <br />
範例程式碼 <br />
<br />
<code>
<?php <br />
$query = 'https://api.foursquare.com/v2/venues/search?ll='.$lat.','.$long.'&client_id='.$foursquare_app_id.'&client_secret='.$foursquare_app_secret.'&v='.date('Ymd');<br />
$ch = curl_init();<br />
curl_setopt($ch, CURLOPT_HEADER, 0);<br />
curl_setopt($ch, CURLOPT_VERBOSE, 0);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
curl_setopt($ch, CURLOPT_URL, $query);<br />
$query_res = curl_exec($ch);<br />
curl_close($ch);<br />
$res = json_decode($query_res); <br />
var_dump($res);<br />
<br />
?>
</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-69515898164397348222012-05-21T22:54:00.002+08:002012-05-21T22:55:27.986+08:00regular expression 正規表示法 判斷中韓日文regular expression 正規表示法<br />
判斷中韓日文<br />
\u4e00-\u9fa5 (中文)<br />
\x3130-\x318F (韓文)<br />
\xAC00-\xD7A3 (韓文)<br />
\u0800-\u4e00 (日文)<br />
if (preg_match("/[\u4e00-\u9fa5]/", $str)){<br />
echo '是中文';<br />
}<br />
參考: http://www.wilf.cn/post/php-match-chinese-str.htmlBruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-27137362160454924132012-02-24T16:00:00.001+08:002012-02-24T16:00:33.267+08:00facebook app IE測試出現Auth errorfacebook app 採iframe方式嵌在 facebook 裡面<br />
使用IE時無法正常取得 facebook api資訊<br />
猜測應該是 iframe 跟 cookie 的關係<br />
<br />
解法:<br />
<code>
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-14165990463367810302012-01-30T11:16:00.001+08:002012-01-30T11:16:43.037+08:00facebook 新增頁籤(tab)到粉絲團(fans page)以前是到app的profile去按加入<br />
後來用此方式<br />
https://developers.facebook.com/docs/reference/dialogs/add_to_page/<br />
<br />
<br />
簡單的php code
<code>
$app_id = '1234567890'; //app id <br />
$next = 'http://tw.yahoo.com/'; //完成後導向 <br />
$redir = 'https://www.facebook.com/dialog/pagetab?app_id='.$app_id.'&next='.urlencode($next); <br />
header('Location: '.$redir); <br />
</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-49490139937805509492012-01-29T15:26:00.002+08:002012-01-29T15:27:42.647+08:00移除 xcodemac裡有二個版本的xcode,實在很吃空間<br />
以下為移除xcode指令,移除後安裝最新的版本即可<br />
<code># sudo /Developer/Library/uninstall-devtools --mode=all</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-27223618684955493072011-12-16T00:33:00.000+08:002011-12-16T00:34:39.555+08:00手機拍照判斷相片角度手機可以橫拍,直拍<br />
exif資訊裡有角度可以供php判斷<br />
參考 http://php.net/manual/en/function.exif-read-data.php<br />
<br />
IFD0 裡的 Orientation<br />
<br />
1: 一般照片<br />
2: 水平翻轉<br />
3: 180度往左轉<br />
4: 重直翻轉<br />
5: 重直翻轉 + 90度往右轉<br />
6: 90度往右轉<br />
7: 水平翻轉 + 90度往右轉<br />
8: 90度往左轉Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-51685434812264904042011-12-07T23:43:00.001+08:002011-12-07T23:43:25.665+08:00計算MySQL可能用到的記憶體數量參考: http://dev.mysql.com/doc/refman/5.0/en/memory-use.html<br />
<br />
<code>
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';<br />SHOW VARIABLES LIKE 'innodb_additional_mem_pool_size';<br />SHOW VARIABLES LIKE 'innodb_log_buffer_size';<br />SHOW VARIABLES LIKE 'thread_stack';<br />SET @kilo_bytes = 1024;<br />SET @mega_bytes = @kilo_bytes * 1024;<br />SET @giga_bytes = @mega_bytes * 1024;<br />SET @innodb_buffer_pool_size = 2 * @giga_bytes;<br />SET @innodb_additional_mem_pool_size = 16 * @mega_bytes;<br />SET @innodb_log_buffer_size = 8 * @mega_bytes;<br />SET @thread_stack = 192 * @kilo_bytes;<br />SELECT<br /> ( @@key_buffer_size + @@query_cache_size + @@tmp_table_size<br /> + @innodb_buffer_pool_size + @innodb_additional_mem_pool_size<br /> + @innodb_log_buffer_size<br /> + @@max_connections * (<br /> @@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size<br /> + @@join_buffer_size + @@binlog_cache_size + @thread_stack<br /> ) ) / @giga_bytes AS MAX_MEMORY_GB;
</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-25217276211167964442011-11-22T18:06:00.001+08:002011-11-22T18:10:06.042+08:00點選按鈕提示IE9釘選功能<code>
<script type="text/javascript"><br />function addSite() {<br /> try{<br /> window.external.msAddSiteMode();<br /> }catch(e){<br /> alert("此功能僅適用於 Internet Explorer 9.");<br /> }<br />}<br /></script><br /><button onclick="addSite();">釘我</button><br />
<br />
</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-47087133370690815942011-11-10T13:45:00.001+08:002011-11-10T13:45:04.273+08:00andorid模擬器轉橫向mac裡跑android模擬器如果要轉橫向測試<br />
fn+control+F12Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-80645195757880780132011-11-07T20:07:00.001+08:002011-11-07T20:07:14.922+08:00IE9釘選功能<code>
<META name="msapplication-task" content="name=標題;action-uri=網址;icon-uri="/>
</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-1528492539363459812011-10-17T03:44:00.001+08:002011-10-17T03:44:52.433+08:00css3 翻轉效果<code><br />#logo {width:200px; height:64px; background:url('../images/logo.png') top left no-repeat;<br /> -webkit-animation-name: y-spin;<br /> -webkit-animation-duration: 2s;<br /> -webkit-animation-iteration-count: 1;<br /> -webkit-animation-timing-function: linear;<br /> }<br /> @-webkit-keyframes y-spin {<br /> 0% { -webkit-transform: rotateY(0deg); }<br /> 50% { -webkit-transform: rotateY(180deg); }<br /> 100% { -webkit-transform: rotateY(360deg); }<br /> }</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-79053569210782160162011-10-13T15:34:00.001+08:002011-10-13T15:34:47.841+08:00mac os 更新 dns cacheTerminal 下指令<br />
# dscacheutil -flushcache<br />
<br />Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-67032180561231453272011-10-12T00:08:00.003+08:002011-10-12T00:10:43.021+08:00透過google map由地址查詢經緯度參考文件
http://code.google.com/intl/zh-TW/apis/maps/documentation/javascript/v2/services.html<br />
<br />測試 http://maps.google.com/maps/geo?q=%E5%8F%B0%E5%8C%97%E5%B8%82%E5%8D%97%E6%B8%AF%E5%8D%80%E4%B8%89%E9%87%8D%E8%B7%AF66%E8%99%9F&output=json&sensor=true<br />
<br />回傳<br />
<br />
<code>{
"name": "台北市南港區三重路66號",
"Status": {
"code": 200,
"request": "geocode"
},
"Placemark": [ {
"id": "p1",
"address": "115台灣台北市南港區三重路66號",
"AddressDetails": {
"Accuracy" : 8,
"Country" : {
"AdministrativeArea" : {
"AdministrativeAreaName" : "台北市",
"Locality" : {
"DependentLocality" : {
"DependentLocalityName" : "三重里",
"PostalCode" : {
"PostalCodeNumber" : "115"
},
"Thoroughfare" : {
"ThoroughfareName" : "三重路66號"
}
},
"LocalityName" : "南港區"
}
},
"CountryName" : "台灣",
"CountryNameCode" : "TW"
}
},
"ExtendedData": {
"LatLonBox": {
"north": 25.0587660,
"south": 25.0560680,
"east": 121.6156030,
"west": 121.6129050
}
},
"Point": {
"coordinates": [ 121.6142540, 25.0574170, 0 ]
}
} ]
}</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-69265999327796640382011-09-09T00:14:00.001+08:002011-09-09T00:14:37.352+08:00Facebook app 調整canvas的寬高Facebook app 調整canvas的寬高<br />
<br />
<code>
<div id="fb-root"><br />
</div><br />
<script src="//connect.facebook.net/zh_TW/all.js"><br />
</script><br />
<script><br />
FB.init({<br />
appId : 'facebook_app_id',<br />
status : true, // check login status<br />
cookie : true, // enable cookies to allow the server to access the session<br />
xfbml : true, // parse XFBML<br />
oauth : true // enables OAuth 2.0<br />
});<br />
<br />
FB.Canvas.setSize({ width: 760, height: 1000 });<br />
</script>
</code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-11552461408521293792011-09-04T22:33:00.002+08:002011-09-04T22:36:32.090+08:00Facebook API 使用FQL 抓取朋友名字,圖片,生日以下為使用FQL抓取朋友名字,圖片,生日的範例教學
<br />注意:需先取得相關權限才能抓取資料
<br />權限參考:http://developers.facebook.com/docs/reference/api/permissions/
<br /><code>
<br /><?php
<br />include('facebook.php');
<br />$facebook = new Facebook(array(
<br /> 'appId' => $facebook_app_id,
<br /> 'secret' => $facebook_app_secret,
<br /> 'cookie' => true
<br /> ));
<br />
<br />$fb_id = $facebook->getUser();
<br />try{
<br /> $aFriendList = $facebook->api(array(
<br /> 'method' => 'fql.query',
<br /> 'query' => 'select uid, name, pic,birthday_date from user where uid in (select uid2 from friend where uid1 = '.$fb_id.')'
<br /> ));
<br />}catch (Exception $e) { }
<br />
<br />var_dump($aFriendList);
<br />?>
<br /></code>
<br />Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com11tag:blogger.com,1999:blog-2857851979416163131.post-45684584442431977172011-08-25T15:08:00.002+08:002011-08-25T15:13:38.422+08:00手機網頁,重返瀏覽器時自動重新整理在手機上離開瀏覽器後再回到瀏覽器通常會看到上一次離開的畫面
<br />如果網頁屬於最新消息之類的訊息,讓使用者回到瀏覽器時自動reload會非常的方便
<br />以下是使用javascript來判斷是否要reload頁面
<br /><code>
<br />var timenow = new Date().getTime();
<br />timenow = Math.ceil(timenow/1000);
<br />function autoReload(){
<br /> var checktime = new Date().getTime();
<br /> checktime = Math.ceil(checktime/1000);
<br /> if( (checktime - timenow) > 60 ){ //如果這邊超過60秒,應該是離開瀏覽器又回來,所以reload
<br /> location.reload();
<br /> }
<br /> timenow = checktime;
<br />}
<br />setInterval('autoReload();',5*1000); //5秒偵測一次
<br /></code>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-25517062204711109292011-08-18T14:36:00.002+08:002011-08-18T14:38:42.301+08:00Firefox 6 網址列無法使用 javascript: function();一般寫前端頁面如有使用 javascript 會在網址列直接下 javascript: function(); 來做debug的動作
<br />
<br />更新到 firefox 6 發現網址列不吃 javascript: 了
<br />
<br />原來有更好用的東西
<br />tools -> web developer -> scratchpad
<br />
<br />在裡面寫下要做的javascript語法,選取後按右鍵
<br />Run 就可以看到執行結果
<br />Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-43304956088063332712011-08-15T16:35:00.000+08:002011-08-15T16:35:18.051+08:00google weather api最近某個東西需要用到氣象資料<br />
氣象局有個 FTP 可以抓取資料,但資料不太齊全<br />
FTP位置 ftp://ftpsv.cwb.gov.tw/pub/forecast/<br />
<br />
然後找了 http://developer.yahoo.com/weather/<br />
實在是不好用...<br />
<br />
網路上翻了翻<br />
看到 http://www.google.com/ig/api?hl=zh-tw&weather=taipei<br />
傳入城市名就可以取得一個xml,真是方便<br />
更方便的是傳入經緯度<br />
http://www.google.com/ig/api?hl=zh-tw&weather=,,,25012085,121465701<br />
真是佛心來得<br />
Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-34683356063772103822011-08-01T15:06:00.002+08:002011-08-01T15:11:35.214+08:00facebook 啟用測試帳號使用Facebook API來打造網站功能時如果又有綁一個帳號只能投票一次的功能<br />
開發時通常測試會很困擾 (要一直不斷清資料庫) <br />
Facebook 放出了測試帳號功能 https://developers.facebook.com/docs/test_users/<br />
一個 app 可以有500組測試帳號<br />
<br />
建立一個測試帳號<br />
<code><br />
if( $_POST ){<br />
$url = 'https://graph.facebook.com/'.urlencode($facebook_app_id).'/accounts/test-users?';<br />
$url .= 'installed=false';<br />
$url .= '&name='.urlencode($_POST['name']);<br />
$url .= '&method=post';<br />
$url .= '&access_token='.urlencode($facebook_app_id).'|'.urlencode($facebook_app_secret);<br />
header('Location: '.$url); exit;<br />
}<br />
<br />
<html><br />
<head><br />
<meta charset="utf-8"><br />
</head><br />
<body><br />
<form method="post" action="test.php"><br />
測試帳號匿名:<input type="text" name="name"><br><br />
<input type="submit" value="送出"><br />
</form><br />
</body><br />
</html><br />
</code><br />
Developer App 裡面有介面可以新增<br />
About->Roles->Testers->Add 然後填資料就可以新增測試帳號<br />
官方文件 http://developers.facebook.com/blog/post/527/Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0tag:blogger.com,1999:blog-2857851979416163131.post-76872048014386422792011-07-27T14:04:00.001+08:002011-07-27T14:05:16.280+08:00iphone safari 電話號碼判斷iphone會貼心的將電話號碼變成連結<br />
但有時候會誤判,像序號之類的東西在手機上呈現會被iphone加上連結<br />
只要在<br />
<head>裡加上<br />
<br />
<pre class="default prettyprint"><code><span class="tag"><meta</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"format-detection"</span><span class="pln"> </span><span class="atn">content</span><span class="pun">=</span><span class="atv">"telephone=no"</span><span class="tag">></span></code></pre><pre class="default prettyprint"><span class="tag">這樣就可以關閉iphone判斷電話號碼的功能 </span><span class="pln"></span></pre><br><br />
<p><br><br />
<p>Bruce Tsenghttp://www.blogger.com/profile/13617742364690239770noreply@blogger.com0