PHP 面接の質問セット - 基本的なプログラミングの質問
基本的なプログラミングの質問
PHP を使用して、前日の時刻を 2006-5-10 22:21:21 の形式で出力します
date('Y-m-d H:i:s', strtotime('-1 day'));
文字列の反転を実現するにはどうすればよいですか?
方法 1:
<?phpfunction reverse($var) { $res = ""; for($i = 0, $j = strlen($var);$i<$j;$i++) { $res = $var[$i].$res; } return $res;}$tmpvar = "wofang";$res = reverse($tmpvar);echo $res;?>
<?php echo strrev("Hello world!"); // outputs "!dlrow olleH" ?>
フォルダー内のすべてのファイルとサブフォルダーを走査できる関数を作成します。
<?php/** * 遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环。 * @param string $dir * @return array */function my_scandir( $dir ) { $files = array(); if ( $handle = opendir( $dir ) ) { while ( ($file = readdir( $handle )) !== false ) { if ( $file != '..' && $file != '.' ) { if ( is_dir( $dir . '/' . $file ) ) { $files[$file] = rec_scandir( $dir . '/' . $file ); } else { $files[] = $file; } } } closedir( $handle ); return $files; }}?>
電子メールの形式が正しいかどうかを確認する関数を作成してください
<?phpfunction checkEmail( $email ) { $preg = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i"; return preg_match( $preg, $email );}?>
PHP Development Resource Network のホームページなどの Web ページのアドレスがあります: http://www.phpres.com/index .html、そのコンテンツを取得する方法
方法 1 (php5 以降):
<?php$readcontents = fopen('http://www.phpers.com/index.html');$contents = stream_get_contents($readcontents);fclose($readcontents);echo $contents;?>
<?php echo file_get_contents('http://www.phpers.com/index.html'); ?>
取得したパラメーターを含む、現在の実行スクリプト パスを取得する方法。
注: たとえば、www.domain.com というスクリプトがあり、それに渡されるパラメーターはパラメーター 1、パラメーター 2、パラメーター 3... パラメーターを渡す方法は GET または POST です。
次に、何か書いてください。 http now ://www.domain.com/script.php? パラメータ 1=値 1&パラメータ 2=値 2.... 結果
まだ答えはありません
バブル ソートまたはクイックのソート アルゴリズムを作成しますsort 。ソート対象のオブジェクトが一次元配列であると仮定します。
(ヒント: システム内の既存の機能は使用できません。以前に学んだ基本知識をよく思い出してください)
rreee
テーブル メニュー (メインメニュー、サブメニュー、URL) があります。ツリー メニューを作成するには再帰的メソッドを使用してください。すべてのメニューを組み合わせて表示されます。
まだ答えはありません
3 つの数値が与えられ、その最大値を見つけるプログラムを作成します。
まだ答えはありません
$a=array(4,3,8,9,2); という配列があります。それを並べ替えて、小さいものから大きいものへと並べてください。
まだ答えはありません
電子メール アドレスと URL に一致する 2 つの正規表現を作成します。次のようなものです:
電子メール アドレス: user_name.first@example.com.cn
URL アドレス: http://www.example.cpm.cn/user_profile.php?uid=100
(ヒント: 標準の正規表現を使用します。これは、PHP の preg_* クラスの規則性処理関数で解析できる規則性です)
Email: /w+([-+.]w+)*@w+([-.]w+)*.w+([- .]w+)* /;
URL: /^http://[w]+.[w]+[S]*/
PHP を使用して $ の値を交換するコードを作成します3 番目の変数を使用せずに a と $b を指定します。 $a と $b の初期値は自分で決定します。
<?php/** * 排序类 */class Sort { /* * 冒泡排序 小到大 */ public function bubble_sort( $array ) { $count = count( $array ); if ( $count <= 0 ) return false; for ( $i = 0; $i < $count; $i++ ) { for ( $j = 1; $j <= $count - $i - 1; $j++ ) { if ( $array[$j] < $array[$j - 1] ) { $tmp = $array[$j]; $array[$j] = $array[$j - 1]; $array[$j - 1] = $tmp; } } } return $array; } /** * 快速排序 */ public function quick_sort( $arr ) { $len = count( $arr ); if ( $len <= 1 ) return $arr; $key = $arr[0]; $left_arr = $right_arr = array(); for ( $i = 1; $i < $len; $i++ ) { if ( $arr[$i] <= $key ) $left_arr[] = $arr[$i]; else $right_arr[] = $arr[$i]; } $left_arr = $this->quick_sort( $left_arr ); $right_arr = $this->quick_sort( $right_arr ); return array_merge( $left_arr, array( $key ), $right_arr ); } /** * 希尔排序 */ public function shell_sort( $datas ) { //分组 for ( $increment = count( $datas ) / 2; $increment > 0; $increment = $increment / 2 ) { //每个组内排序 for ( $i = $increment; $i < count( $datas ); $i++ ) { $temp = $datas[$i]; $j = 0; for ( $j = $i; $j >= $increment; $j = $j - $increment ) { if ( $temp < $datas[$j - $increment] ) { $datas[$j] = $datas[$j - $increment]; } else { break; } } $datas[$j] = $temp; } } return $datas; }}?>
標準 URL からファイル拡張子をできるだけ効率的に抽出する関数を作成してください
例: http://www.sina.com.cn/abc/de/fg.php?id=1 を抽出する必要がありますphp または .php
答え 1:
<?php $a = 1; $b = 2; list($b, $a) = array($a, $b);?>
<?phpfunction getExt($url){ $arr = parse_url($url); $file = basename($arr['path']); $ext = explode(".", $file); return $ext[1];}?>
2 つのファイルの相対パスを計算する関数を作成します
$a = '/a/b/c/d/e.php' など
$ b = '/a/b/12/34/c.php';
$a に対する $b の相対パスを計算します。
<?phpfunction getExt($url) { $url = basename($url); $pos1 = strpos($url, "."); $pos2 = strpos($url, "?"); if(strstr($url, "?")){ return substr($url, $pos1 + 1, $pos2 - $pos1 - 1); } else { return substr($url, $pos1); }}?>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









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

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

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

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
