欧美AV无码一区二区,麻豆+无码+国产在线+观看,欧美狂躁少妇XXXX高潮无码,美女扒开屁股让男人桶免费观看,极品粉嫩国产18尤物在线播放

使用 PHP

本節匯集了你在寫(xiě) PHP 腳本時(shí)可能碰到的大多數普通錯誤。

  1. 我忘了 PHP 函數的參數順序,它們是隨機的嗎?
  2. 我想寫(xiě)一個(gè)可以處理任何表單來(lái)的數據的通用 PHP 腳本。我怎么知道哪個(gè) POST 方法變量可用呢?
  3. 我需要在所有的單引號(')前加一個(gè)反斜線(xiàn)(\),使它們變成(\')。我如何能夠通過(guò)正則表達式來(lái)實(shí)現? 我同樣希望能夠將 " 轉換成 \",將 \ 轉換成 \\。
  4. 當我這樣做時(shí),輸出顯示的次序是錯的: <?php function myfunc($argument) { echo $argument + 10; } $variable = 10; echo "myfunc($variable) = " . myfunc($variable); ?> 這是怎么回事?
  5. 下面代碼怎么沒(méi)有分成兩行顯示? <pre> <?php echo "This should be the first line."; ?> <?php echo "This should show up after the new line above."; ?> </pre>
  6. 我得到消息 “Warning: Cannot send session cookie - headers already sent...” 或者 “Cannot add header information - headers already sent...”。
  7. 我需要直接訪(fǎng)問(wèn)請求報頭中的信息,怎么能辦到?
  8. 當我用 IIS 進(jìn)行 HTTP 認證時(shí)得到 “No Input file specified” 消息。
  9. Windows:不能訪(fǎng)問(wèn)另一臺電腦上用 IIS 共享的文件。
  10. 我怎樣混合使用 XML 和 PHP?它不認我的 <?xml 標記!
  11. 哪里可以找到所有可用的 PHP 預定義變量的完整列表?
  12. 怎樣才能不用非免費的商業(yè)庫(例如 PDFLib) 來(lái)生成 PDF 文檔?我想要個(gè)免費的并且不需要再連接別的 PDF 庫。
  13. 有些 PHP 選項可以接受縮寫(xiě)的字節值,與僅能接受 int 字節值相反。都有哪些縮寫(xiě)字節值?
我忘了 PHP 函數的參數順序,它們是隨機的嗎?

PHP 是一個(gè)將數百個(gè)外部庫連接在一起的粘合劑,盡管有時(shí)候會(huì )有一些混亂。這里有一些簡(jiǎn)單的經(jīng)驗法則:

數組函數 參數的順序為 "needle, haystack", 字符串函數 則相反,順序為 "haystack, needle"。

我想寫(xiě)一個(gè)可以處理任何表單來(lái)的數據的通用 PHP 腳本。我怎么知道哪個(gè) POST 方法變量可用呢?

PHP 提供很多“ 預定義變量”,例如超全局變量 $_POST??梢员闅v $_POST變量,因為它是一個(gè)和所有通過(guò) POST 方法傳遞數據相聯(lián)系的數組。例如,可以用 foreach簡(jiǎn)單地遍歷它,檢查 empty()值,以及將它們輸出。

<?php
$empty 
$post = array();
foreach (
$_POST as $varname => $varvalue) {
    if (empty(
$varvalue)) {
        
$empty[$varname] = $varvalue;
    } else {
        
$post[$varname] = $varvalue;
    }
}

print 
"<pre>";
if (empty(
$empty)) {
    print 
"None of the POSTed values are empty, posted:\n";
    
var_dump($post);
} else {
    print 
"We have " count($empty) . " empty values\n";
    print 
"Posted:\n"var_dump($post);
    print 
"Empty:\n";  var_dump($empty);
    exit;
}
?>

我需要在所有的單引號(')前加一個(gè)反斜線(xiàn)(\),使它們變成(\')。我如何能夠通過(guò)正則表達式來(lái)實(shí)現? 我同樣希望能夠將 " 轉換成 \",將 \ 轉換成 \\。

假設是針對數據庫,請使用數據庫自帶的轉義機制。比如,針對 MySQL 使用 mysql_real_escape_string() 函數,針對 PostgreSQL 則使用 pg_escape_string() 函數。還有兩個(gè)標準函數 addslashes()stripslashes() 可以在舊的 PHP 版本中實(shí)現類(lèi)似的操作。

當我這樣做時(shí),輸出顯示的次序是錯的:
<?php
function myfunc($argument)
{
    echo 
$argument 10;
}
$variable 10;
echo 
"myfunc($variable) = " myfunc($variable);
?>
這是怎么回事?

要在一個(gè)表達式中(例如在上面的例子中和其它字符串連接)使用函數的結果,需要 return 這個(gè)值,而不是 echo 它。

下面代碼怎么沒(méi)有分成兩行顯示?
<pre>
<?php echo "This should be the first line."?>
<?php 
echo "This should show up after the new line above."?>
</pre>

在 PHP 中,一段代碼的結束標記要么是“?>”要么是“?>\n”(\n 表示換行)。因此在上面的例子中,輸出的句子將顯示在同一行中,因為 PHP 忽略了代碼結束標記后面的換行。這意味著(zhù)如果要輸出一個(gè)換行符,需要在每段 PHP 代碼的結束標記后面多加一個(gè)換行。

PHP 為什么這么做呢?因為在格式化正常的 HTML 時(shí),這樣通常會(huì )更容易。假如輸出了換行而你不需要這個(gè)換行時(shí),就不得不用一個(gè)非常長(cháng)的行來(lái)達到這樣的效果,或者讓產(chǎn)生的 HTML 頁(yè)面的源文件的格式很難讀。

我得到消息 “Warning: Cannot send session cookie - headers already sent...” 或者 “Cannot add header information - headers already sent...”。

函數 header(), setcookie()session 函數需要在輸出流中添加頭信息。但是頭信息只能在其它任何輸出內容之前發(fā)送。在使用這些函數前不能有任何(如 HTML)的輸出。函數 headers_sent() 能夠檢查腳本是否已經(jīng)發(fā)送了頭信息。請參閱 輸出控制函數。

我需要直接訪(fǎng)問(wèn)請求報頭中的信息,怎么能辦到?

如果以 Apache 的模塊方式運行 PHP,那么函數 getallheaders() 可以做這件事。因此下面的代碼可以顯示所有的請求報頭:

<?php
$headers 
getallheaders();
foreach (
$headers as $name => $content) {
    echo 
"headers[$name] = $content<br />\n";
}
?>

請參閱函數 apache_lookup_uri()、 apache_response_headers()fsockopen()。

當我用 IIS 進(jìn)行 HTTP 認證時(shí)得到 “No Input file specified” 消息。

IIS 的安全模型這里有毛病。這是所有 IIS 下運行的 CGI 程序所共有的問(wèn)題。一個(gè)解決辦法是建立一個(gè)純 HTML 文件(不經(jīng)過(guò) PHP 解析)作為要進(jìn)入認證目錄的登錄頁(yè)面,然后用 META 標記來(lái)重定向到 PHP 頁(yè)面,或者用一個(gè)連接到 PHP 頁(yè)面。然后 PHP 就可以正確識別認證信息了。如果是用 ISAPI 模塊,那沒(méi)有這個(gè)問(wèn)題。其它 NT 下的 web 服務(wù)器不受此影響。更多信息見(jiàn) ? http://support.microsoft.com/kb/q160422/HTTP 認證 一章。

Windows:不能訪(fǎng)問(wèn)另一臺電腦上用 IIS 共享的文件。

必須要做些修改。打開(kāi) Internet 信息服務(wù),找到你的 PHP 文件并打開(kāi)屬性頁(yè),選擇 文件安全性標簽,點(diǎn)擊 匿名訪(fǎng)問(wèn)和身份驗證控制的“編輯”按鈕。

解決此問(wèn)題有兩個(gè)方法,一是不要選中 匿名訪(fǎng)問(wèn)并且選中 集成 Windows 身份驗證,二是選中 匿名訪(fǎng)問(wèn)并編輯匿名訪(fǎng)問(wèn)使用的帳戶(hù),改成一個(gè)有權限的。

我怎樣混合使用 XML 和 PHP?它不認我的 <?xml 標記!

要能夠在 PHP 代碼中直接嵌入 <?xml,需要將 PHP 設置項 short_open_tags設置為 0以關(guān)閉短標記格式。無(wú)法通過(guò)函數 ini_set()來(lái)更改這項設置。不管 short_open_tags是開(kāi)或者關(guān),都可以用類(lèi)似于 <?php echo '<?xml'; ?>的方法達到目的。該項設置的默認值為開(kāi)。

哪里可以找到所有可用的 PHP 預定義變量的完整列表?

請閱讀手冊中的 預定義變量 一章,該部分的文檔已經(jīng)包含了一部分可以用于你的腳本的預定義變量的列表??捎米兞康耐暾斜恚案嘈畔ⅲ┛梢酝ㄟ^(guò)調用 phpinfo() 函數來(lái)查閱。請務(wù)必閱讀手冊中 來(lái)自 PHP 之外的變量 一節,這部分文檔闡述了外部變量的概念,例如來(lái)自 HTML 表單、Cookie 和 URL 的變量。

怎樣才能不用非免費的商業(yè)庫(例如 PDFLib) 來(lái)生成 PDF 文檔?我想要個(gè)免費的并且不需要再連接別的 PDF 庫。

有幾個(gè)選擇,例如 ? FPDF? TCPDF 模塊。

有些 PHP 選項可以接受縮寫(xiě)的字節值,與僅能接受 int 字節值相反。都有哪些縮寫(xiě)字節值?

可用的選擇有 K(對應 Kilobytes),M(對應 Megabytes)和 G(對應 Gigabytes),區分大小寫(xiě)。其余的都認為是字節。 1M等于一個(gè) Megabyte,即 1048576 字節。 1K 等于一個(gè) Kilobyte,即 1024 字節。不能在 php.ini 之外使用這些符號,最好用整數的 int 字節值。參見(jiàn) ini_get() 文檔中的轉換示例。要注意,數字類(lèi)型為 int 會(huì )自動(dòng)取整,這意味著(zhù) 0.5M0 是等價(jià)的。

注意: kilobyte 和 kibibyte 的區別

PHP 將一個(gè)千字節(kilobyte)描述為等于 1024 字節(bytes),而 IEC 標準則認為這是一個(gè) kibibyte。結論:k 和 K = 1024 bytes.

欧美AV无码一区二区,麻豆+无码+国产在线+观看,欧美狂躁少妇XXXX高潮无码,美女扒开屁股让男人桶免费观看,极品粉嫩国产18尤物在线播放