ホームページ  >  記事  >  バックエンド開発  >  PHP プログラマーの面接の質問 (典型的な要約)

PHP プログラマーの面接の質問 (典型的な要約)

WBOY
WBOYオリジナル
2016-07-25 08:59:27947ブラウズ
  1. function GBsubstr($string, $start, $length) {
  2. if(strlen($string)>$length){
  3. $str=null;
  4. $len=$start+$length;
  5. for( $i=$start;$i if(ord(substr($string,$i,1))>0xa0){
  6. $str.=substr($string,$i, 2);
  7. $i++;
  8. }else{
  9. $str.=substr($string,$i,1);
  10. }
  11. }
  12. return $str.'...';
  13. }else{
  14. return $string ;
  15. }
  16. }
コードをコピーします

2. PHP を使用して、クライアント IP とサーバー IP を表示するコードを記述しますか? 答え:

  1. $readcontents = fopen("http://bbs.it-home.org/index.html", "rb");
  2. $contents = stream_get_contents($readcontents);
  3. fclose($ readcontents);
  4. echo $contents;
コードをコピー

方法 2:

  1. function getExt($url){
  2. $arr = parse_url($url);
  3. $file =basename($arr['path']);
  4. $ext =explode(".",$ file);
  5. return $ext[1];
  6. }
コードをコピー

答え 2:

  1. function getExt($url) {
  2. $url = Basename($url);
  3. $pos1 = strpos($url,".");
  4. $pos2 = strpos($url,"?") ;
  5. if(strstr($url,"?")){
  6. return substr($url,$pos1 + 1,$pos2 - $pos1 - 1);
  7. } else {
  8. return substr($url,$pos1) ;
  9. }
  10. }
コードをコピー

19. 2 つのファイルの相対パスを計算する関数を作成しますか? たとえば、 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; $a に対する $b の相対パスが http://bbs.it-home.org/c/d になるように計算し、() を追加します。 答え:

  1. function getRelativePath($a, $b) {
  2. $returnPath = array(dirname($b));
  3. $arrA =explode('/', $a); ('/', $returnPath[0]);
  4. for ($n = 1, $len = count($arrB); $n if ($arrA[$n] ! = $arrB[$n]) {
  5. ブレーク;
  6. }
  7. }
  8. if ($len - $n > 0) {
  9. $returnPath = array_merge($returnPath, array_fill(1, $len - $n, '. .'));
  10. }
  11. $returnPath = array_merge($returnPath, array_slice($arrA, $n));
  12. return implode('/', $returnPath);
  13. echo getRelativePath($a, $b); );
  14. コードをコピー
提供された上記の PHP 面接の質問がお役に立てば幸いです。また、あなたの応募に使用できることを心から願っています。

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