開発を行うときは、すべてのエラー プロンプトをオンにしてください: error_reporting = E_ALL | E_STRICT
エラー プロンプトをブロックすることは、耳を隠してベルを盗むことと同じです。
標準化された方法でコードを作成すると、エラーが半分に減ります。
1: 変数を取得できないのはなぜですか?
ある Web ページから別の Web ページにデータ名を POST するのに、$name を出力すると値を取得できないのはなぜですか?
PHP4.2 以降のバージョンの場合register_global のデフォルトは off です
別のページから送信された変数を取得したい場合:
方法 1: PHP.ini で register_global を見つけて on に設定します。
方法 2: この extract($_POST) を先頭に置きます。受信側 Web ページ; extract($_GET);(extract($_SESSION) の前に Session_Start() が必要であることに注意してください)。
//extract ( array $var_array [, int $extract_type [, string $prefix ]] )
//この関数は、配列から現在のシンボル テーブルに変数をインポートするために使用されます。連想配列 var_array を引数として受け入れ、キー //name を変数名として、値を変数の値として使用します。キーと値のペアごとに、 //extract_type パラメーターと prefix パラメーターの影響を受ける変数が現在のシンボル テーブルに作成されます。
//import_request_variables ( string $types [, string $prefix ] ) はスーパーグローバルであり、$_ $* に抜け穴があります
方法 3: 変数を 1 つずつ読み取る $a=$_GET["a"];$b= $_POST["b"] など。この方法は面倒ですが、安全です。
2: プログラムをデバッグする
実行時に特定の変数の値を知っておく必要があります。これが私がやったことです。debug.php ファイルを作成します。その内容は次のとおりです:
PHP コード: ------------------------ -------------------------------------------------- -- --
コードをコピー
Ob_Start();
Session_Start();
Echo "
";<br/> Echo "このページで取得される _GET 変数は次のとおりです:";<br/> Print_R($_GET);<br/> Echo " このページで取得される _POST 変数は次のとおりです: ";<br/> Print_R($_POST);<br/> Echo "このページで取得される _COOKIE 変数は次のとおりです: ";<br/> Print_R($_COOKIE);<br/> Echo "このページで取得される _SESSION 変数ページは :";<br/> Print_R($_SESSION);<br/> Echo "
";
---------------------- -------------------------------------------------- -- ----
次に、php.ini で include_path = "c:/php" を設定し、このフォルダーに debug.php を置きます。
今後はこのファイルをすべての Web ページに含めて、結果の変数を表示できます。名前と値。
3: session の使用方法
セッションに関連するすべてのものは、その前に関数 session_start() を呼び出す必要があります。
セッションの値の支払いは、次のように非常に簡単です:
PHP コード: ---- --- --------------------------------------------------- --- --------------------------
php4.2以降は、セッション料金を直接支払うことができます:
PHPコード:- ----- -------------------------------------- ----- ------------------------
[php]
Session_Start();
$_SESSION["name"]= "値";
[/php]
-------------------------------------- ---------- ----------------------------------
このようにセッションをキャンセルします:
PHP コード:---- -------------------------------------- ---------- ------------------------
[php]
session_start();
session_unset() ;
session_destroy();
[/php]
------------------------------------- ------------- ----------------------------------
php4.2 以降では、特定のセッション変数をキャンセルする際にバグがあります。
注:
1: Session_Start() を呼び出す前に出力を行うことはできません。たとえば、以下は間違っています。 ===================== ====================
1行
2行 [php]
3 行 Session_Start();//最初の行の前にすでに出力がありました
4 行....
5 行[/php]
================ ======================== ====
ヒント 1:
「...ヘッダーはすでに送信されました...」が表示されるたびに、これは、Session_Start()の前にブラウザに情報が出力されていることを意味します。
出力を削除すれば正常になります。 (このエラーはCOOKIEでも発生し、エラーの原因は同じです)
ヒント2:
Session_Start() がループ ステートメント内に配置されており、情報が以前にブラウザーに出力された場所を特定するのが難しい場合は、次の方法を使用できます。
1 line [php] Ob_Start();
....これがあなたのプログラムです...
2: エラーは何ですか?
警告: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) が失敗しました:....
セッション ファイルの保存パスを指定します。
解決策:
(1) C ドライブに tmp フォルダーを作成します
( 2) php.ini を開き、session.save_path を見つけて、それを session.save_path= "c: /tmp"
4: 変数を別の Web ページに送信すると、変数の前半とスペースで始まる部分だけが取得されるのはなぜですか? すべてが失われています
PHP コード:----- -------------------------------------- ---------- ----------------------------
[php]
$Var="hello php ";//$Var に変更します=" hello php"; 結果を取得してみます。$post= "receive.php?Name=".$Var;
header("location:$post");
[/php]
----------------- -------------------------------------------------- -------------
receive.php 内容:
PHP コード:---------- ---- ------------------------------------------------ ---- --
[php]
Echo "
";<br/>Echo $_GET["Name"];<br/>Echo "
";
[/php]
--- ---- ------------------------------------------------ ---- ------------------------
正しい方法は次のとおりです:
PHP コード:---------- ----- -------------------------------------- ----- ---------------
[php]
$Var="hello php";
$post= "receive.php?Name=".urlencode($Var);
header ("location:$post");
[/php]
-------------------------------- -- ------------------------------------------------ -
受信ページで Urldecode() を使用する必要はありません。変数は自動的にエンコードされます。
5: "[/php]" で終わらずに指定された長さの中国語文字をインターセプトする方法、および余分な部分は "..." で終わります
一般に、インターセプトされる変数は Mysql からのものです。まず、フィールドの長さが十分な長さであることを確認します (通常は char(200))。これには 100 文字の中国語文字を保持できます。 、句読点を含む
PHP コード: --- -------------------------------------- ------------ ------------------------
[php]
$str="このキャラクターとても長いです、^_^";
$ Short_Str=showShort($str,4);//最初の 4 つの中国語文字をインターセプトすると、結果は次のようになります: この文字...
Echo "$Short_Str";
Function csubstr( $str,$start,$len)
{
$ strlen=strlen($str);
$clen=0;
for($i=0;$i{
if ($clen>=$start+$len)
break ;
if(ord(substr($str,$i,1))>0xa0)
{
if ($clen>=$start)
$tmpstr. =substr($str,$i,2);
$i++;
}
else
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,1);
}
}
return $tmpstr;
}
関数 showShort ($str,$len)
{
$tempstr = csubstr($str,0,$len);
if ($str<>$tempstr)
$ tempstr .= "..." //終わりについては、ここを変更するだけです。
return $tempstr;
}
------ -------------------------------------------------------- ----
6: SQL ステートメントを標準化します
キーワードの誤用によるエラーが発生しないように、テーブルやフィールドの前に「`」を追加します。
もちろん、使用することはお勧めしませんキーワード。
例:
$Sql="INSERT INTO `xltxlm` (`author`, `title`, `id`, `content`, `date`) VALUES ('xltxlm', 'use`', 1, 'criterion your SQL string ' , '2003-07-11 00:00:00')"
"`"入力方法は? TAB キーです。
7: Html/PHP 形式の文字列を防ぐ方法解釈されませんが、そのまま表示
PHPコード:------------------------------------- ---------- --------------------------------------
[php]
$str="
";
Echo "解釈されました: ".$str."
処理されました:";
Echo htmlentities(nl2br($str)) ;
[/php]
nl2br() 関数は、文字列内の各改行 (n) の前に HTML 改行文字 (
) を挿入します。
htmlentities(string,quotestyle,character-set)
quotestyle はオプションです。一重引用符と二重引用符をエンコードする方法を指定します。
ENT_COMPAT - デフォルト。二重引用符のみがエンコードされます。
ENT_QUOTES - 二重引用符と一重引用符をエンコードします。
ENT_NOQUOTES - 引用符をエンコードしません。
character-set
ISO-8859-1 - デフォルト。西ヨーロッパ。
ISO-8859-15 - 西ヨーロッパ (ユーロ記号とフランス語とフィンランド語の文字を追加)。
UTF-8 - ASCII 互換のマルチバイト 8 ビット Unicode
cp866 - DOS 固有のキリル文字セット
cp1251 - Windows 固有のキリル文字セット
cp1252 - Windows 固有の西ヨーロッパ文字セット
KOI8-R - ロシア語
GB2312 - 簡体字中国語、国の標準文字セット
BIG5 - 繁体字中国語
------------------------------------------------- ----- --------------------------------------
8:関数内での取得方法 関数外の変数値
PHPコード:-------------------------------- ------------------------ -------------------------------------------- ---
[php]
$a= "PHP";
foo();
Function foo()
{
global $a;//ここを削除して結果を確認してください
Echo "$a";
}
[/php]
---- ------------------------------------- ------------- ------------------------
9: 何をどうやって知ることができますかシステムがデフォルトでサポートする関数
PHP コード:---- ---------------------------------- ---------------- ------------------------
[php]
$arr = get_dependent_functions();
Function php() {
}
echo " ";<br>Echo "システムでサポートされているすべての関数とカスタム関数 phpn が表示されます";<br>print_r($arr);<br>echo "
";
[/php]
-------- -- ------------------------------------------------ -- ----------
10: 2 つの日付の差を比較する方法
PHP コード:----------- - ------------------------------------------------- - --------------------
[php]
$Date_1="2003-7-15";//次のようにすることもできます:$Date_1="2003- 6-25 23:29:14";
$Date_2="1982-10-1";
$Date_List_1=explode("-",$Date_1);
$Date_List_2=explode("-",$Date_2);
$d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]);
$d2=mktime(0,0,0,$Date_List_2[1],$ Date_List_2[2],$Date_List_2[0]);
$Days=round(($d1-$d2)/3600/24);
エコー "$Days 日間苦労しました^_^";
[/php ]
(strtotime($Date_1) - strtotime($Date_2))/3600/24
------------------------------------- --- ----------------------------------------------- -
11: PHP をアップグレードした後、元のプログラムが全画面表示になったのはなぜですか 注意: 未定義の変数:
これは、変数が未定義であることが原因で発生する警告です。
php.ini を開いて一番下の error_reporting を見つけ、error_reporting に変更します。 = E_ALL & ~E_NOTICE
解析エラー error
error_reporting(0) をオフにすることはできません。
エラー プロンプトをオフにしたい場合は、php.ini を開いて、display_errors を見つけ、display_errors = Off に設定してください。プロンプトは表示されません
それでは、error_reportingとは何でしょうか?
12: ファイルの先頭と最後にファイルを追加したいのですが、1つずつ追加するのは非常に面倒です
1: phpを開きます。 ini ファイル
Set include_path= "c:"
2: 2 つのファイル
auto_prepend_file.php と auto_append_file.php を作成し、C ドライブに保存すると、各 php ファイルの先頭と末尾に自動的に添付されます
。 3: ini にあります:
PHP ドキュメントの前後にファイルを自動的に追加します。
auto_prepend_file = auto_prepend_file.php; 末尾に添付します
あなたの php ファイルは
PHP コードと同等になります:------------------------------------- ---------- --------------------------------
[php]
「」を含めるauto_prepend_file.php" ;
... ....//プログラムは次のとおりです
Include "auto_append_file.php";
[/php]
------------- ---------------------------------------------------- -------- --------
13: PHP を使用してファイルをアップロードする方法
PHP コード:------------ ----------- -------------------------------------- ----------- -------
[php]
アップロードファイルフォーム
< ;body>