目前分類:PHP (36)

瀏覽方式: 標題列表 簡短摘要

朋友給我一個網路相簿,要我看看裡面的東西,但是單張單張點好慢,乾脆下載下來再從檔案總管看好了。

本來要用像 FlashGet 之類的批次下載的工具,不過檔案有 XML 格式的檔案清單、但檔名不規律,就自己寫程式抓。

 

文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

今天遇到一個在 Load balancer 上的網站,採用 PHP 5 的 A 主機網頁正常,但使用 PHP 7 的 B 主機版面就怪怪的。追蹤了一下,看起來是 fgetcsv() 出問題,沒有正常解析。我們的 CSV 檔是 Big5 編碼的,看起來是解析了某個中文欄位之後,後續欄位就有異常。

上網查了一下,找到《PHP讀取BIG5編碼的CSV檔》,裡面提到:

「但如果 CSV 檔是 BIG5 編碼,當中文字中有包含反斜線(\)字元的衝碼字,
文章標籤

小攻城師 發表在 痞客邦 留言(1) 人氣()

手上有一個網站,大部分的網頁語系都是宣告為 UTF-8,只有某個資料夾裡的網頁比較特別,都宣告為 Big5。今天看到測試的 server 裡, 宣告成 Big5 的那個資料夾的每一支網頁都變成以 UTF-8 模式載入,以至於使用者在不手動切換編碼的狀況下會看到一堆亂碼。

研究了一下原始碼,META 裡有宣告 Big5 沒錯。

<meta http-equiv="Content-Type" content="text/html; charset=big5">

可是從 Chrome 的開發人員工具,可以看到該網頁的 Response headers 送出語系 (charset) 為 UTF-8。

文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

參考 "PHP – Using oEmbed API to Embed Videos",想取回 JSON 資料,卻一直失敗。

研究了一下 PHP Manul,發現原因是文章裡說可以透過這樣的語法取值:

<?php
文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

解決的思維和上次連線到 Oracle 的問題很像(上次處理 Oracle 的心得:[PHP] 如何使用 PHP 的 OCI8 連線至 Oracle):

  1. 先確認 php.ini 裡,有把指定資料庫的 extension 取消註解。
  2. 確認 extension 資料夾裡有 php.ini 指定要讀取的 dll 檔。
  3. 確定指定資料庫 (Oracle / Sybase) 的核心 dll 有沒有在系統參數的 PATH 資料夾裡。
    (有的人會建議放在 C:\Windows\System32,有的人會說把檔案放在某個資料夾再把該路徑設定到 PATH,是一樣的道理。)

 

文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

模仿前人的程式,寫了一段超迷你的程式要連 Oracle,但一直跳出的錯誤訊息:

PHP Fatal error:  Call to undefined function Ora_Logon()

查了一下官方文件,Ora_* 這種函式看起來不是官方支援的,網路上的文章倒是不少,可能是過時所以被拿掉了吧?向同事拿了他開發機上頭 PHP 的 ext 資料夾底下的 php_oracle.dll,嘗試在 php.ini 加上 "extension=php_oracle.dll",結果出現新的錯誤:

PHP Startup: Unable to load dynamic library 'C:/php/ext/php_oracle.dll' - 找不到指定的模組。

怪了,明明就放在一樣的路徑下。研究別人找不到模組的原因,有人說和引用順序有關,於是放在 ";extension=php_oci8.dll" 這行之後,一樣沒用,不過把 ";extension=php_oci8.dll" 的註解拿掉(這行最前面的分號刪除掉),「找不到指定的模組」這個錯誤訊息就消失了。但還是不認得 Ora_Logon() 這個函式。

文章標籤

小攻城師 發表在 痞客邦 留言(2) 人氣()

有一段路徑是類似這樣的:

\\127.0.0.1\test\測試文件.doc

試著這樣要開檔案。

<?php

文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

租了一個 Godaddy 的空間,預設的時區是 America/Phoenix。不管是開 .htaccess 做這樣的設定:

SetEnv TZ Asia/Taipei

還是在 php.ini 做這樣的設定:

[Date]
文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

我為網站的表單開了一個 bit 型態的欄位來儲存布林值 (boolean),取出時發現怎麼取,不管裡頭存的是 true (1) 或 false (0),抓出來都會被判斷成 true。

不管是這樣:

if($row_data["is_user"]==1)

還是這樣:

文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

寫了一個上傳檔案功能,基本上上傳是沒有問題,但是第一個字元會被吃掉。
比方說上傳一個檔案 "123.pdf",上傳後檔名部分只能抓到 "23.pdf",超怪。
原本以為是編碼問題,但越調反而越多狀況。

文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

之前在本機開發時,在 Windows\System32\drivers\etc 的 hosts 檔案裡,故意設了一組 abc_test 的對應:

127.0.0.1   abc_test

同時也在 Apache 設定 virtual host,這樣在開發時連到 http://abc_test,就可以預覽效果,未來上線時也比較不用擔心相對路徑層數不同,會造成破圖或檔案連結有誤等問題。

不過,在 firefox 上開發完畢後,到 IE 上想要看跨瀏覽器效果時,卻連登入都沒辦法登入。

文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

網站從測試環境送上 production 之後,我在 IE9 可以下載檔案,但使用者反映他使用 IE8 無法正確下載。

錯誤訊息為:
「Internet Explorer 無法下載 xxx.php 從 xxx.xxx.xxx.tw。

文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

試著產生 ZIP 壓縮檔,下載檔案產生後,解壓縮時卻顯示「這個壓縮檔不是未知的格式就是損壞。」

研究了一下,原因是因為我用到了 TemplatePower,在頁首就 include 了 TemplatePower,使得頁面輸出壓縮檔時有了多餘的字元。

文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

這一天是透過 jQuery.ajax() 送出 request 後,發生資料拿不回來的錯誤。故事是這樣發生的──我有一段短短的 AJAX 和很簡單的 PHP,AJAX 大概是長成這個樣子的:

$.ajax({

文章標籤

小攻城師 發表在 痞客邦 留言(2) 人氣()

在 Visual Studio,只要在函式 (function) 或類別 (class) 上方按下三次註解符號,就會自動產生一段 XML 格式的註解。填完這段註解後,在輸入函式時就會自動解析 XML 的內容,成為函式或類別使用的提示 (intellisense)。例如說這個函式有三個參數,每個參數應該給什麼格式?給定的參數的代表意義是什麼?如果每次寫新的函式時都能照著寫,日後呼叫函式或使用類別時,就能輕鬆辨識每一段程式碼的應用方式。今天發現在 eclipse 裡也有類似的功能。

完成函式的撰寫之後,輸入「/**」。接著按下 Enter,就會自動帶出後續的輸入提示。以下圖的程式碼為例,因為需要帶進一個參數,所以會自動要你填上參數的用意(寫在 @param 之後)。

文章標籤

小攻城師 發表在 痞客邦 留言(0) 人氣()

要確定環境是否設定完成,可以建立以下檔案測試:
  <?php phpinfo(); ?>
若環境設定無誤,該檔案會列出PHP環境設定值。

小攻城師 發表在 痞客邦 留言(0) 人氣()

«12