PHP 面接での典型的な 7 つの質問 (回答付き)
この記事では、PHP の面接でよくある 7 つの質問 (回答付き) を紹介します。一定の参考価値があります。困っている友人は参考にしてください。皆さんのお役に立てれば幸いです。
1. 2 つの配列をマージするにはいくつかの方法があります。類似点と相違点を比較してみてください。
方法:
1、array_merge()
2、' '
3. array_merge_recursive
類似点と相違点:
array_merge は単に配列をマージします
array_merge_recursive は 2 つの配列をマージします。配列内にまったく同じデータがある場合は、マージします。これらを再帰的に
array_combine と ' ': 2 つの配列をマージし、前者の値が新しい配列
2 のキーとして使用されます。ユーザーが送信したデータが整数であるかどうかを確認する関数を作成してください (データ型に関係なく、2 進数、8 進数、10 進数、または 16 進数の可能性があります)
回答: 実際、主なものは is_int と Floor このメソッド
if(!is_numeric($jp_total)||strpos($jp_total,".")!==false){ echo "不是整数"; }else{ echo "是整数"; }
3です。 PHP の strto lower () および strtoupper () 関数は、中国語以外のシステムがインストールされているサーバー上で中国語の文字を文字化けに変換する可能性があります。Unicode テキストと互換性のある文字列の大文字と小文字の変換を実現するには、2 つの代替関数を作成してください
回答: 理由は、中国語はマルチバイトで構成されており、英語システムでは英語 1 文字だけが 1 バイトしかないため、システムは中国語のすべてのバイトに対して strto lower () 処理を実行します。結合すると文字化けします (新しく生成されたエンコーディング マップに対応する文字が中国語ではない可能性があります)
手動解決策: str_split (string string, intstring, intsplit_length = 1) を使用して、次のように各バイト カットを押します。中国語は3バイトに切れます。認識されたバイトが英文字の場合は変換されます。
rreeee4. PHP の is_writeable () 関数にはバグがあります。ディレクトリ/ファイルが書き込み可能かどうかを正確に判断できません。ディレクトリ/ファイルが完全に書き込み可能かどうかを判断する関数を作成してください。
回答: あります。は、このバグの 2 つの側面です。 ,
1. Windows では、ファイルに読み取り専用属性しかない場合、is_writeable () 関数は false を返します。true が返された場合、ファイルは必ずしも書き込み可能であるとは限りません。
それがディレクトリの場合は、そのディレクトリに新しいファイルを作成し、そのファイルを開いて確認します;
ファイルの場合は、そのファイルを開いて書き込み可能かどうかをテストできます(フォオープン)。
2. Unix では、php 設定ファイルでセーフモードがオンになっている場合 (safe_mode=on)、is_writeable () も使用できません。
構成ファイルを読んで、safe_mode がオンになっているかどうかを確認します。
rreeee5. PHP の chmod() 関数にはバグがあり、設定が成功するかどうかは保証できません。指定したパスにディレクトリ/ファイルを作成し、パーミッションマスクが正しく設定できることを確認する関数を作成してください
答え: 私も見つかりません 答えへ
6. PHP は、アップロードされたファイル情報配列のファイル タイプを処理します $_FILES ['type'] は、クライアント ブラウザによって提供されます。ハッカーによって偽造された情報である可能性があります。アップロードされた画像ファイル タイプが、ユーザーは本物で信頼できる
回答: getimagesize を使用してアップロードされた画像のタイプを判断することは、$_FILES 関数のタイプよりも信頼性が高くなります。
同じファイルの場合、php によって返されるタイプは、異なるブラウザの使用は異なり、ブラウジングによって決定されます。サーバーがタイプ type を提供する場合、ハッカーは
を使用して、画像サフィックスを装った実行可能ファイルをサーバーに送信する可能性があります。
getimagesize () 関数を使用して、アップロードされたファイルの種類を確認できます。アバター ファイルの場合は、次のような配列が返されます。
<?php function mystrtoupper($a){ $b = str_split($a, 1); $r = ''; foreach($b as $v){ $v = ord($v); if($v >= 97 && $v<= 122){ $v -= 32; } $r .= chr($v); } return $r; } $a = 'a中你继续F@#$%^&*(BMDJFDoalsdkfjasl'; echo 'origin string:'.$a." "; echo 'result string:'; $r = mystrtoupper($a); var_dump($r);
getimagesize () 関数が返された場合このような配列で説明すると、アップロードされるのはアバターファイルです。インデックス 2 の表現タイプは、
1 = GIF、2 = JPG、3 = PNG、4 = SWF、5 = PSD、6 = BMP、7 = TIFF (インテル バイト オーダー)、8 = TIFF( Motorola バイト オーダー)、9 = JPC、10 = JP2、11 = JPX、12 =JB2、13 = SWC、14 = IFF、15 = WBMP、16 = XBM、
これを使用して、アップロードされたデータを制限できます。アバタータイプ
/** * Tests for file writability * * is_writable() returns TRUE on Windows servers when you really can't write to * the file, based on the read-only attribute. is_writable() is also unreliable * on Unix servers if safe_mode is on. * * @access private * @return void */ if ( ! function_exists('is_really_writable')) { function is_really_writable($file){ // If we're on a Unix server with safe_mode off we call is_writable if (DIRECTORY_SEPARATOR == '/' AND @ini_get("safe_mode") == FALSE){ return is_writable($file); } // For windows servers and safe_mode "on" installations we'll actually // write a file then read it. Bah... if (is_dir($file)){ $file = rtrim($file, '/').'/'.md5(mt_rand(1,100).mt_rand(1,100)); if (($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE){ return FALSE; } fclose($fp); @chmod($file, DIR_WRITE_MODE); @unlink($file); return TRUE; } elseif ( ! is_file($file) OR ($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE) { return FALSE; } fclose($fp); return TRUE; } }
7。 PHP は、データの URL をエンコードすることで Javascript とのデータ対話を実装します。ただし、一部の特殊文字のエンコードおよびデコード規則が Javascript とは異なります。この違いを詳しく説明し、UTF-8 のデータを対象にしてください。文字セット。PHP のエンコード関数とデコード関数、および Javascript のエンコード関数とデコード関数を記述して、PHP でエンコードされたデータが Javascript で正しくデコードされ、JavaScript でエンコードされたデータが PHP
で正しくデコードできることを確認します。回答:
Array( [0] => 331 [1] => 234 [2] => 3 [3] => width="331" height="234" [bits] => 8 [mime] => image/png );
/ /js decodeURIComponent は GB2312 エンコード形式を認識しないため、utf-8 に変換する必要があります。その後、文字列にスペースがある場合、数値に変換されます
<?php $file=$_FILES['file']; if(!empty($file)) { var_dump($file); var_dump(getimagesize($file["tmp_name"])); } ?>
以上がPHP 面接での典型的な 7 つの質問 (回答付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
