ホームページ  >  記事  >  バックエンド開発  >  PHP 面接の質問セット - 基本的なプログラミングの質問

PHP 面接の質問セット - 基本的なプログラミングの質問

WBOY
WBOYオリジナル
2016-06-23 13:59:33897ブラウズ

基本的なプログラミングの質問


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;?>
方法 2:
<?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;?>
方法 2:
<?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);?> 
答え 2:
<?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); }}?>  


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。