顯示具有 PHP 標籤的文章。 顯示所有文章
顯示具有 PHP 標籤的文章。 顯示所有文章

2012年2月26日 星期日

PHP 5.3.2 連 SQL Server Express 2005


到微軟下載 Microsoft Drivers for PHP for SQL Server
將下載下來的資料解壓縮後,將要的ddl檔放至php的ext資料夾下
   52: for PHP 5.2
   53: for PHP 5.3
   VC6 : for Apache
   VC9 : for IIS
   ts : ThreadSafe的
   nts: no ThreadSafe的





















修改 php.ini 加入 dll,並重啟 Apache 或 IIS





在  phpinfo( ); 即可看見

2012年2月25日 星期六

將 unix 時間格式轉換成一般日期時間


//將 unix 時間格式轉成一般日期
echo date("Y-M-d H:m:s",1327936805);

//將一般日期格式轉成 unix 時間
echo mktime(23,01,05,01,30,2012);

2011年12月29日 星期四

WinXP灌Apache2+PHP+MySQL5


安裝順序為 Apache -> PHP -> MySQL
開啟Apache安裝路徑下的 conf/httpd.conf檔
修改 DocumentRoot









修改 Directory















修改 DirectoryIndex








加入以下







2011年11月5日 星期六

讀取 新聞的RSS (xml)

環境:PHP5 + Apache2.2

一開始在 simplexml_load_string直接帶URL,在自已的機器是可以跑的,但放到另一台電腦會出現simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity 的錯誤訊息,所以改成用cURL的方式將xml先抓下來,再執行,就OK了。

//新聞的RSS -- 民視
define("RSS_URL","http://news.ftv.com.tw/hinetnews/ftvnews.xml");
 //新聞 RSS 的標題的標籤
define("RSS_TITLE","Title");
//新聞 RSS 的內容的標籤                                   

define("RSS_DESCRIPTION","Description");
//新聞 RSS 的圖檔的標籤                   
define("RSS_IMAGE","Image");                                    



//初始化 PHP/cURL session
$ch = curl_init();
//定義目標網站
curl_setopt($ch, CURLOPT_URL, RSS_URL);
//以字串的方式送回來
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//不等待超過60的時間
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
//執行cURL指令(將目標網頁的內容放至字串
 $output = curl_exec($ch);
//關閉PHP/cURL session
curl_close($ch);
 
$rss =  simplexml_load_string($output);
//讀取XML的內容
foreach ($rss as $key0 => $value) {
foreach($value as $key => $value2){
switch($key){
case RSS_TITLE: //標題
$var_value['v_title'] = $value2;
break;
case RSS_DESCRIPTION:   //內容
$var_value['v_content'] = $value2;
break;
case Image: //圖檔
$var_value['v_img'] = $value2;
break;
}                  
}

}

2011年1月29日 星期六

解決 php 連 MySQL 出現亂碼問題

MySQL Server 為utf8
MySQL Table 為 big5

此時用PHP連MySQL,發現會出現亂碼
解決方式 :在 PHP 連資料庫的地方多加 mysql_query("SET NAMES 'big5'");
ex:

$conn = mysql_connect($server,$db_user,$db_pass);
mysql_query("SET NAMES 'big5'");

if (!$conn){
die('Could not connect DataBase: '.mysql_error());
mysql_close($conn);
exit;
}

2010年9月19日 星期日

php連sybase資料庫時可寫名稱,不用寫IP

ssh> cd /usr/local/etc
ssh> vi freetds.conf

寫成以下
[sybase_db1]
        host = 10.10.10.1
        port = 4000
        tds version = 5.0
        client charset = utf8

[sybase_db2]
        host = 10.10.10.2
        port = 4000
        tds version = 5.0
        client charset = utf8


這樣php在連sybase資料庫時可寫成
sybase_connect("sybase_db1","帳號","密碼","編碼big5或utf8",'');

2010年8月2日 星期一

出現unable to load dynamic library php_exif.dll

在windows用排程執行php程式時,出現unable to load dynamic library php_exif.dll
解決方式為:
開啟php.ini (C:\WINDOWS\php.ini)
將extension=php_mbstring.dll移至
extension=php_exif.dll 前即可。

參考資料:http://blog.yam.com/koli09/article/20020227

2009年11月3日 星期二

2009年10月22日 星期四

讓php錯誤訊息顯示在網頁上

因為可能會把php.ini裡的display_errors設成off,這樣網頁有錯誤訊息就不會顯示
display_errors = Off

若要在某個網頁顯示錯誤訊息,可在程式加
ini_set('display_errors', 'On');

可以順便加 error_reporting(E_ALL | ~E_WARNING| ~E_NOTICE)

2009年10月20日 星期二

jquery+ajax用json回傳值

javascript:
<script language="JavaScript" src="json.js"> </script>
$(document).ready(function(){
 $("#lookfor_s").click(function(){
  var y = $("#s_year").val(); //年
  var m = $("#s_month").val(); //月
  $.ajax({
   type:"POST",
   url:"test.php",
   dataType:'json',
   data:"year="+y+"&month="+m,
   success:function(json){
    $('#show_1').html(json[0]);
    $('#show_2').html(json[2]);
   } //success
  }) //ajax
 });
});

html:
<input type="button" name="lookfor_s" value="查詢" id="lookfor_s"/>
<span id="show_1"></span>
<span id="show_2"></span>

php:
require_once ('JSON.php');
$j = new Services_JSON();
$return_data = array();
$return_data[0] = iconv("big5","UTF-8","這是");
$return_data[1] = "test";
$jsonString = $j->encode($return_data);
echo $jsonString;
exit;

參考資料:
http://blog.xuite.net/vexed/tech/26580605
http://liaosankai.pixnet.net/blog/post/16753266

2009年10月19日 星期一

reload時出現訊息

window.onbeforeunload = function conReload(){
  return "確定重新整理?";
}


2009年10月15日 星期四

找出這個月的最後一天

//找出下個月的第一天
$nextmonth = date('Y-m-01',strtotime(date("Y-m-d").' +1 month'));

//下個月的第一天的前一天即為這個月的最後一天
$lastday = date("Y-m-d", strtotime('-1 days', strtotime($nextmonth) ));

2009年10月9日 星期五

連到別的主機

在Linux下用/usr/bin/local/php 去執行 test.php,而 test.php 要連去另一個網頁,可用curl或file_get_contents()

不可用header("Location:http://abc/another_test.php");
因為header是給瀏覽器看的,/usr/bin/local/php並不是用瀏覽器去執行。

EX:
用curl:
//初始化 curl_init
$ch = curl_init('http://abc/another_test.php');
curl_exec($ch); //執行curl
curl_close($ch); //關閉curl

參考: http://tw.php.net/manual/en/function.curl-init.php

2009年10月7日 星期三

讀取網頁,並把資料寫入檔案

$file = "http://www.books.com.tw/";
$html = "";

$fo = fopen($file, "r");
while (!feof($fo)) {
 $html .= fgets($fo);
}
fclose($fo);
echo $html;
$TxtFileName = "test.html";
$File = fopen($TxtFileName,"w");
if ($File){
  fwrite($File,$html);
 fclose($File);
}

讓程式在背景執行

讓程式在背景執行,若關掉網頁,程式還是會繼續執行 -- 主機為Unix或Linux
1.
nohup指背景執行,把putty關掉不中斷command
exec('/usr/bin/nohup /usr/local/bin/php /home/www/php/intranet/BT/bt_acceptno_to_ack.php > /dev/null &');

2.
exec ('/usr/local/bin/php /home/www/php/intranet/BT/bt_acceptno_to_ack.php > /dev/null &');

重點為:> /dev/null & =>若沒寫,算是前景執行,因此網頁關掉,程式就停掉了。

2009年9月27日 星期日

split出現REG_EMPTY錯誤

$data = 0|0|236|235;
用split分割$buffer = split("|",$tmpdata);
出現:Warning: split() [function.split]: REG_EMPTY in. .....
這是因為 | 是正規中的保留字,所以要用 \|
改成 $buffer = split("\|",$tmpdata); 即可

設定時區

//設定時區-判斷date_default_timezone_set函式是否存
if (function_exists ( 'date_default_timezone_set' )){
  date_default_timezone_set('Asia/Taipei'); //PHP5設定時區, 在PHP4無法使用
} else {
  putenv("TZ=Asia/Taipei"); //PHP4設定時區的用法
}

2009年9月16日 星期三

php寫入文字檔換行

//空白
fputs($fp,"str1\n");

//換行
fputs($fp,"str1\r\n");

2009年8月12日 星期三

continue

for($i=0; $i<3; $i++){
 echo $i.">>";
  for($j=0; $j<5; $j++){
  if ($j == 1) continue; //跳 j 下一筆
   echo $j;
 }
  echo "_________";
  echo "<br>";
}
==>
0>>0234_________
1>>0234_________
2>>0234_________

for($i=0; $i<3; $i++){
 echo $i.">>";
  for($j=0; $j<5; $j++){
   if ($i == 1) continue; //跳 i 下一筆
    echo $j;
  }
  echo "_________";
 echo "<br>"
}
==>
0>>01234_________
1>>_________
2>>01234_________

break

for($i=0; $i<3; $i++){
 echo $i.">>";
 for($j=0; $j<5; $j++){
   if ($j == 1) break 1; //跳出內回圈
    echo $j;
}
 echo "_________";
 echo "<br>";
}
==>
0>>0_________
1>>0_________
2>>0_________


for($i=0; $i<3; $i++){
 echo $i.">>";
   for($j=0; $j<5; $j++){
    if ($j == 1) break 2; //跳出外回圈
    echo $j;
   }
  echo "_________";
 echo "<br>";
}
==>
0>>0