1. PHP を使用して、前日の時刻形式を出力します: 2006-5-10 22:21:21
date_default_timezone_set('PRC') //中国のタイムゾーンを設定しますecho $today=date ("Y-m-d h:i ; 関数とステートメントには戻り値がありませんが、関数は戻り値を持つことができます (役に立たない場合でも)
print は単純な型の変数 (int、 string)
print_r は、複雑な型の変数 (配列、オブジェクトなど) の値を出力できます
3. PHP と C 言語では、本質的に、プリインクリメントとポストインクリメントの 2 種類があります。 、前インクリメントと後インクリメントの両方で変数の値が増加し、変数に同じ影響を与えます。違いは、式の値が増加することです。 「++$variable」と記述される事前インクリメントは、インクリメント後の値を検索します (PHP は変数の値を読み取る前に変数の値をインクリメントするため、「事前インクリメント」と呼ばれます)。ポストインクリメントは、「$variable++」と記述され、インクリメントされる前に変数の元の値を検索します (PHP は変数の値を読み取った後に変数の値をインクリメントするため、「ポストインクリメント」と呼ばれます)。
$a = 1;
$b = $a++;
$b 値? 1
3. バージョン管理にはどのようなツールが使用されますか?
SNV (Subversion)、VSS (Source Code Manager) など
4. 文字列反転を実現するにはどうすればよいですか?
$luokuan = "ABCDEFG-テスト済み-!!! 1、2、3、4、5...";
$n = mb_strlen("$luokuan");
//echo $n;
$newluokuan = "";
for ($i=$n;$i>=0;$i--)
{
//$newluokuan.= substr($luokuan,$i,1);
$newluokuan .= mb_substr($luokuan,$i,1,'utf-8');
}
echo $newluokuan;
中国語と英語の混合を考慮していません。最適なアルゴリズムを使用し、PHP ライブラリ関数によって反転する必要はありません。 文字列:
5. 最も適切なフィールド属性を選択します
2サブクエリ (Sub-Query) の代わりに結合 (JOIN) を使用します
3. 手動で作成した一時テーブルの代わりに結合 (UNION) を使用します
4. テーブルをロックします6.
7. インデックスを使用する
6. PHP とは別に使用する HTML とテンプレートを作成できるようにする
smarty、phplib、SmartTemplate...
7. トランザクション処理について話しましょう
同時トランザクションによって生成されたデータの送信と更新。これは、lock.comit、ロールバックの概念です
8. Apache + mysql + php で最大負荷を達成する方法
質問はあまりにも一般的で、静的な HTML ページを生成します。 、Squid リバース プロキシ、Apache と mysql の負荷分散
9. 中国語のテキスト文字列インターセプトの実装。
まず、文字セットの問題を考慮する必要があります。UTF-8 の次の漢字は 3 バイトを占有し、GBK の次の漢字は 2 バイトを占有します。これを処理する関数も作成できます。もちろん、mbstring を有効にして、mb_substr() などの関数を使用して
10.
var $empty = '';
var $null = NULL;
var を使用することもできます。 $bool = FALSE;
var $ notSet;
var $array = array();
$a = "hello";
$b = &$a;
unset($b) ;
$b = "world";
$a とは何ですか?
こんにちは、unset($b) は $b 自体と $a の間のエイリアス関係を解放するだけで、$a は解放しません
$a = 1;
$x = &$a;
$b = $a++;
$b とは何ですか?
1、最初に $b = $a を実行し、次に $a++ を実行します。つまり、$b はまだ 1
$x = empty( $array);
$x は true か false ですか
true、$array は空の配列です
12. バージョン管理ソフトウェアを使用したことがありますか。 ? その場合、使用するバージョン管理ソフトウェアの名前は ?
CVS:winCVS は CVS クライアントです
VSS は Microsoft 製品であり、小規模および中規模のプロジェクトに適しており、1 人によるチェックアウトのみをサポートします
13. テンプレート エンジンを使用したことがありますか? テンプレート エンジンの名前は
SMARTY、PHP が公式に推奨するテンプレート エンジンです。 phplib と同様に強力な機能があり、30 種類以上のタグがあり、キャッシュをサポートしています
14. トラフィックの問題を解決するためにどのような方法を使用しますか?もちろん、お金に問題がない場合は、帯域幅を増やすことも良い選択です。
15. PHP を使用して、クライアント IP とサーバー IP を表示するコードを記述します。 '] //クライアント ip
echo $_SERVER['SERVER_ADDR'] //サーバー ip
インタビューの質問 3
1.
1) コンテンツ管理システムでは、メッセージ テーブルには次のフィールドがあります
id 記事 ID
title 記事タイトル
content 記事コンテンツ
category_id 記事カテゴリ ID
ヒット数 クリック数
上記のテーブルを作成し、MySQL ステートメントを記述します
createテーブルメッセージ
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Title varchar(100),
content varchar(225),
category_id int,
Hits int
)
mssql? :
テーブルメッセージを作成
(
id INT ID(1,1) not null 主キー,
title varchar(100),
[content] varchar(225),
[category_id] int,
ヒット int
)
2) 上記と同じコンテンツ管理システム: テーブル コメントはユーザーの返信コンテンツを記録します。フィールドは次のとおりです
comment_id Reply id
id 記事 ID、メッセージテーブルの ID
comment_content Reply コンテンツ
次に、データベースにクエリを実行して、次の形式で記事タイトルのリストを取得し、返信数が最も多いものが先頭に表示されるように並べ替える必要があります。
記事 ID 記事タイトルのクリック数と返信数
SQL ステートメントを使用して上記のクエリを完了します。 If 記事への返信がない場合、返信数は 0 と表示されます
select a.id。 、a.title、a.hits、if(ifnull(b.id,false),count(*),0) メッセージ a からの再生として a.id=b.id のコメント b に参加します
a でグループ化します。 id
order by Reply desc
3) 上記のコンテンツ管理システムでは、カテゴリテーブルに分類情報が保存されており、フィールドは次のとおりです (3 点)
category_id int(4) not null auto_increment;
categroy_name varchar(40) not null;
ユーザーが記事を入力すると、ドロップダウン メニューを選択して記事カテゴリが選択されます
このドロップダウン メニューの実装方法を書き出します
function categoryList ( ) () {{
$ result = MySQL_Query ("カテゴリからカテゴリ ID、カテゴリ名を選択")
or Die ("無効なクエリ:". "Mysql_error ());
t; value=''> ;"n");
while($rowArray=mysql_fetch_array($result))
value=''> >".$rowArray['categroy_name'].""n");
}
print("");
}
3. PHP プログラム
1) 次のプログラムの出力を記述します
& lt;?
$b=201;
$c=40;
$a=$b>$c ?4:5;
echo $a;
?>
$a=4
2) 次のプログラムの出力を書き込みます
$str="cd"; ";
?> ;
$str="cd";
IV.
1. PHP における値渡しと参照渡しの違いを説明してください。いつ値渡しするのか、いつ参照渡しするのか?
値渡しは変数の値を別の変数に渡すだけですが、参照は 2 つが同じ場所を指すことを意味します。
2 PHP の error_reporting の機能は何ですか?
PHP スクリプトのエラー報告レベルを設定します。
3 メールの形式が正しいかどうかを検証するための正規表現( Regular Expression )を使用した関数を記述してください。
/*
メールアドレスかどうかをチェックし、論理値を返す*/
function CheckMailAdr($str){return(eregi("^[_.0-9a-z-]+@([ 0-9a -z][0-9a-z-]+.)+[a-z]{2,3}$",$str));
}
4 取得したパラメータを含む、現在の実行スクリプトのパスを取得する方法を簡単に説明します。
注: たとえば、www.domain.com というスクリプトがあり、それに渡されるパラメーターはパラメーター 1、パラメーター 2、パラメーター 3... です。パラメータの受け渡し方法はGETでもPOSTでも良いので、 http://www.domain.com/script.php?Parameter 1=Value 1&Parameter 2=Value 2.... のように書いてください。 結果
という感じです。実行前スクリプトのパスについては少し曖昧です。サーバー上のスクリプトの絶対パスを取得したい場合は、$_SERVER['APPL_PHYSICAL_PATH'] を使用します。それがスクリプトの URL である場合は、
To を使用できます。すべてのパラメータを取得: 次のメソッドを使用できます:
//投稿データを取得
while (list($var, $value) = each($HTTP_POST_VARS))
{
echo "$var = $value n";
}
//getメソッドでデータを取得
while ( list($var, $value) = each($HTTP_GET_VARS))
{
echo "$var = $value n";
}
5 があります整数データを格納する 1 次元配列の場合は、最大値から最小値の順に並べ替える関数を作成してください。高い実行効率が求められます。実行効率を向上させる方法について説明します。
(この関数は自分で実装する必要があります。php 関数は使用できません)
バブルソートが使用できます
function BubbleSort($str)
{
for ($i=0;$i
for ($j=count($str)-2;$j>=$i;$j--)
$j])
$str[$j]= $tmp;
}
}
$str;
$str = array(3,6,1,5,9,0,4,6,11) ;
print_r(バブルソート($str) );
? >
6 開発プロセス中にページの読み込みを高速化するために使用する方法の例を教えてください
A.静的 HTML を生成します、
C. ZEND で高速化
1-JavaScript を通じてウィンドウがブロックされているかどうかを確認する方法。
2- サイト Y が session_start() を実行する場合に、ユーザー A がサイト Y にアクセスすることを書き出します。常に存在します) その後、session_id が生成され、このセッション ID は通常、COOKIE の形式でユーザー A に保存されます (php.ini で session.use_only_cookies を 1 に設定することで、SESSION ID を COOKIE に強制的に渡すことができます)。 )。このとき、SESSION ID は $_COOKIE['PHPSESSID']; として表示されます (PHPSESSID は session_name() 関数で変更できます)
ユーザー A がアクセスすると、このセッション ID ($_COOKIE['PHPSESSID']) は次のようになります。 A が訪問するたびに使用されます。Y 時にサイト Y に送信されます。
サイト Y には、SESSION の実際のデータを保存するために使用されるディレクトリが存在します。サイト Y はセッション ID を受信し、セッション ID を通じて SESSION データとの関連付けを取得し、SESSION データを返します。
3- SQL インジェクションの脆弱性を防ぐために、通常は _____ 関数が使用されます。
4 ) as num FROM `members` group by username order by count(*) desc limit 10
5
3 つの数字を与えて、最大値を見つけるプログラムを作成してください。
$var1=1;$var2=7;
$var3=8; $max=$var1>$var2?$var1:$var2;
$max=$max>$var3?$max:$var3;
echo $max;
6) テーブルメニュー (メインメニュー、サブメニュー、URL) があります。再帰を使用してツリーメニューを作成し、すべてのメニューをリストしてください
7.执行程序段
将出 2
8.HTTP 1.0 では、ステータス 401 の内容が
401 (Unauthorized/未授权)
401 (SC_UNAUTHORIZED) 表示ゲスト端末授权头信息には有効な効果はありませんこのアクションには、WWW-Authenticate の許可情報フィールドが含まれている必要があります。
arsort -- 对数组进行逆排序并保持インデックス关系
error_reporting(2047) すべて的??警告
レベル E_STRICT.を除く、サポートされているすべてのエラーと警告
10、请写出PHP5权制限制御修饰符(3分)
private protected public
11、请写出php5の构造関数和分析构関数(2分)
__construct __destruct
12、取得查発言結果集合数関数数は?(1 分)
mysql_num_rows($res);
13. PHP では、現在の書き込みの名前 (経路パスと查询文字列は含まれません) が指定されています (1) 中に;しかし链接現在のページへの URL は、既定の量 (2) に含まれています。 echo $_SERVER["HTTP_REFERER"];
14. HTTP 1.0 では、ステータスコード 401 の内容は (4) です。「ファイルに到達できません」というプロンプトを返す場合、ヘッダー関数を使用でき、その句は (5) です。 "HTTP/1.0 404 が見つかりません");
15 正しい表形式、过虑ネット上のすべての JS/VBS スクリプト (つまりスクリプト标记およびその内容都去掉):(9)。
Echo preg_replace("/dffffff ");
16..Apache モジュールの方法で PHP をインストールし、文件 http.conf 内で最初に必要な语句(10)アニメーション态装をダウンロードして PHP モジュールを再使用し、その後再使用する语句(11)を使用して Apache のすべての展名を取得しますphpの文書全てがPHPスクリプト処理として機能します。
(10)LoadModule php5_module "D:/xampp/apache/bin/php5apache2.dll"
(11) AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml
17.语句 include および require 都能把另外一文件包含当前文件中,它们的区别是(12);為了回避多次に、同じ文章を含め、句を代わりに使用できます(13)。シーケンス化後にセッション中に保存され、後でクラスを並べ替えることができます。これが必要な関数は (14) です。参照、除非php.ini中ハンドル(15)設定はon.
allow_call_time_pass_reference
20.SQL中LEFT JOINの内容は(16)です。
(16) 自然左外接続
21 .例: tbl_user记录了学生の姓名(名前)と学号(ID)、
tbl_score记录了学生(有る学生考试後开除,不有其记录)の学号(ID)と考试成绩(スコア)併せて検討科目(件名)、
は各学生の姓名とそれに関連する各科をまとめて出力することを考えており、SQL 句を使用できます (17)。
(17) select name , count(score) as sum_score tbl_user 左から tbl_user.ID=tbl_score.ID グループの tbl_score に参加します
22. PHP では、ヒアドキュメントは特殊な文字列であり、その終了フラグは (18) でなければなりません。
終了識別子が配置されている行には、「;」以外の文字を含めることはできません
23. フォルダー内のすべてのファイルとサブフォルダーを走査できる関数。
/**
* ディレクトリを走査し、結果を配列に保存します。 php4以降をサポートします。 php5 以降では、scandir() 関数を使用して while ループを置き換えることができます。
* @param string $dir
* @return array
*/
function my_scandir($dir)
{
$files = array();
if ( $handle = opendir($dir) ) {
while ( ($file = readdir($handle)) !== false ) {
$file) ) {
= $file;
}
o CLOSEDIR ($ ハンドル)
$ ファイルを返します。}