Heim Backend-Entwicklung PHP-Tutorial 据说是新浪乐居的面试题及我的答案以及对笔试题的一些建议

据说是新浪乐居的面试题及我的答案以及对笔试题的一些建议

Jul 29, 2016 am 08:56 AM
array nbsp path

一、 
1、有如下HTML:据说是新浪乐居的面试题及我的答案以及对笔试题的一些建议 
1)用js取得________方法取得该对象; 
2)用________属性取得属性title的属性值; 
3)用________方法取得属性sina_title的属性值; 
(1) document.getElementById('img1');
(2) document.getElementById('img1').getAttribute('title');
(3) document.getElementById('img1').getAttribute('sina_title');
2、php中对数组序列化和反序列化的函数分别是______和_______; 
serialize,upserialize
3、rawurlencode和urlencode函数的区别是__________________; 
rawurlencode会将空格转换为+,urlencode会把空格转换为%20
4、php中过滤HTML的函数是_______,转义的函数是____________; 
strip_tags,htmlspecialchars
5、写出用正则把HTML中的js脚本过滤掉; 
preg_replace('//is','',$htmlcode);
6、SQL中LEFT JOIN的含义是______________; 
如果有一个表tl_user存储学生ID和名字name,另外一个表tl_score存储学生ID、科目subject和成绩score(有的学生没有考试成绩),写出sql语句打印出学生名字和各科总成绩; 
左联接,首先将左表中所有数据取出,然后再将满足where条件中的右表数据取出来。当此行的数据并不满足where条件,则返回空.
select tu.name,sum(ts.score) as totalscore from tl.user left join tl_score on tl.uid = ts.uid;
7、写出三个调用系统命令的函数; 
system,passthru,exec
8、josn处理数组的函数是; 
json_encode,json_decode
9、php中判断变量是否被设置是函数是_______;判断是否为空的是___________; 
isset,empty
10、error_reporting("E_ALL")和ini_set("display_errors", "on")的区别_________; 
前者是设置错误显示等级,E_ALL代表提示全部错误(包括notice,warnning和error)。后者是设置让php显示错误,在关于错误显示控制中,后者的优先级最高。
11、PHP写出显示客户端IP的预定义变量________;提供来路url的是__________; 
$_SERVER['REMOTE_ADDR'],$_SERVER['HTTP_REFERER']
12、php把utf-8转换成gbk的函数是___________; 
iconv('UTF-8','GBK',$str);
13、php中分割字符串成数组的函数__________,连接数组成字符串的是_______; 
explode,implode
14、php中类的静态方法怎么使用_____________________________________; 
在类外部,使用:类名后面跟双冒号,再后面是方法名,类似classname::staticFucntion(),由于静态方法不属于某个对象,而是隶属于整个类,所以要用类名来调用它。
二、 
1、如下错误:mysql server not go away,的原因是什么?(大概这是这样) 
应该是mysql has gone away吧?
一般情况下是由于max_allowed_packet设置的值过小导致的,max_allowed_packet用来控制缓冲区的包大小,有时在导入数据的时候,此值过小就容易造成缓冲区容量不够。将my.ini或my.cnf中的此值设置大一些即可解决。
还有一种可能是连接数据库时使用了单例模式,多次操作数据库但都使用的是同一个连接,由于mysql处理每个线程也是队列模式,当前一个操作还没执行完毕并且间隔小于wait_timeout所设置的值时就容易出现此问题,解决办法是将wait_timeout的值设置大一些。
2、mysql的静态表和动态表的区别,MyISAM和InnoDB的区别. 
静态表是当一个表中没有采用varchar,blob,text这种可变长字段时,此表就是静态表,反之,如果一个表内存在至少一个可变长字段时,或者如果一个表被用ROW_FORMAT=DYNAMIC选项来创建,此表就为动态表。
myisam与innodb的区别在于,myisam不支持事务处理,因为其不用去做commit操作,所以操作起来速度会比innodb较快。innodb在安全性方面要好于myisam,由于支持事务处理,insert,update,delete,select。等操作在默认autocommit=0时,会将每一个操作都当作一个事务,可以进行rollback。如果autocommit=1时,每一个操作后它都会自动提交此事务,会造成执行的效率很慢,大概会比myisam慢10倍。
3、$a = 1; $b = & $a; 
unset($a),$b是否还是1,为什么? 
unset($b),$a是否还是1,为什么? 
都等于1。
在php中,引用赋值不同于指针的感念,他只是将另一个变量名指向了某个内存地址。此题中:$b = &$a;只是将$b这个名字也指向了$a变量所指向的内存地址。unset时只是释放了这个名字的指向,并没有释放内存中的值。另一方面讲unset($a),其实也并未真正立刻释放内存中的值,也只是释放了这个名字的指向而已,该函数只有在变量值所占空间超过256字节长的时候才会释放内存,并且只有当指向该值的所有变量(比如有引用变量指向该值)都被销毁后,地址才会被释放。
三、 
1、写出至少三个函数,取文件名的后缀,如文件'/as/image/bc.jpg',得到 jpg或者.jpg。 
function myGetExtName1( $path ){
 //取出最后一个出现.这个字符的索引位置
 $begin = strrpos($path,'.');
 //取出整个字符串长度
 $end = strlen($path);
 //从最后一个.的索引的位置截取到字符串的总长度后的结果返回
 return $begin?substr($path,$begin,$end):'该文件没有扩展名';
}
function myGetExtName2( $path ){
 return preg_match_all('/\.[^\.]+/is',$path,$m)?$m[0][count($m[0])-1]:'该文件没有扩展名';
}
function myGetExtName3( $path ){
 //找到最后一个出现.字符的索引位置并将其后面的所有字符一起返回
 return strrchr($path,'.')?strrchr($path,'.'):'该文件没有扩展名';
}
2、写一个函数,算出两个文件的相对路径如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; 计算出 $b 相对于 $a 的相路径。
$a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
//求$b相对于$a的相对路径
function getRelativelyPath($a,$b){
 //拆分成数组
 $a = explode('/',$a);
 $b = explode('/',$b);
 $path = '';
 //将两个数组的索引重置
 $c = array_values(array_diff($a,$b));
 $d = array_values(array_diff($b,$a));
 
 //去除掉a路径的文件名
 array_pop($c);
 //将a路径中的目录名替换为..
 foreach($c as &$v) $v = '..';
 
 //合并两个数组
 $e = array_merge($c,$d);
 //拼接路径
 foreach($e as &$v)
  $path .= $v.'/';
 return rtrim($path,'/');
}
3、用二分法(也叫折半查找法)查找某元素,对像可以是有序数组。
//二分法查找一个数组中是否存在某值
function binSearchWithArray($array,$searchValue){
 global $time;
 if(count($array)>=1){
  $mid = intval(count($array)/2);
  
  echo '第',$time++,'次
';

  echo '当前数组:';print_r($array);echo '
';

  
  echo '查找位置索引:',$mid,'
';

  echo '值:',$array[$mid],'

';

  if($searchValue == $array[$mid]){
   $time--;
   return $searchValue.'被找到了,于第'.$time.'次,索引为'.$mid.'
';

  }
  elseif($searchValue 
   $array = array_slice($array,0,$mid);
   return binSearchWithArray($array,$searchValue);
  }
  else{
   $array = array_slice($array,$mid+1,count($array));
   return binSearchWithArray($array,$searchValue);
  }
 }
 return $searchValue.'没找到
';

}
$time = 1;
//要查找的数组
$array = array(1,5,8,101,13,19,25,50,60,199,35);
//要查找的值
$searchValue = 13;
//对数组排序,二分法的关键
sort($array);
echo '要查找的值为:',$searchValue,'

';

echo binSearchWithArray($array,$searchValue);
 
这些题说实话不难,但我还是必须承认有些题我查了资料,因为很多函数平时不借助IDE根本想不起来怎么写,有些概念以前即使知道并理解,但好长时间不涉及却会渐渐淡忘,比如按引用传递那个。
面试时都是让拿笔写,我相信没几个人能用笔在短时间内把这些东西都写出来,尤其是后面的写代码的,需要反复修改,因为你在思考的过程中逻辑肯定会出现些漏洞,需要将代码执行下才能明白哪里出了问题,用笔写真的是扯淡。就算在计算机上写,后面的一些代码我还写了2,3个小时呢。
面试时的笔试题,真的有待商榷,相信不止我一个人有此感受吧?上次去腾讯面试我就被笔试题给害了。到那了头脑一片空白,回家后慢慢回忆那些题,发现都能写出来的。

各位都看看我的答案,有有没有疏漏或错误的地方,我并不是觉得考这些东西完全没有价值,只是觉得面试时作为笔试题很不妥。希望各位在各个公司参与面试别人的朋友能参考下我的意见,换一种更加合理的考核方式。

原文地址:http://bbs.csdn.net/topics/340149214

以上就介绍了据说是新浪乐居的面试题及我的答案以及对笔试题的一些建议,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Lösung: Ihre Organisation verlangt von Ihnen, dass Sie Ihre PIN ändern Lösung: Ihre Organisation verlangt von Ihnen, dass Sie Ihre PIN ändern Oct 04, 2023 pm 05:45 PM

Auf dem Anmeldebildschirm wird die Meldung „Ihre Organisation hat Sie gebeten, Ihre PIN zu ändern“ angezeigt. Dies geschieht, wenn das PIN-Ablauflimit auf einem Computer erreicht wird, der organisationsbasierte Kontoeinstellungen verwendet und die Kontrolle über persönliche Geräte hat. Wenn Sie Windows jedoch über ein persönliches Konto einrichten, sollte die Fehlermeldung im Idealfall nicht erscheinen. Obwohl dies nicht immer der Fall ist. Die meisten Benutzer, die auf Fehler stoßen, melden dies über ihre persönlichen Konten. Warum fordert mich meine Organisation auf, meine PIN unter Windows 11 zu ändern? Es ist möglich, dass Ihr Konto mit einer Organisation verknüpft ist. Ihr primärer Ansatz sollte darin bestehen, dies zu überprüfen. Die Kontaktaufnahme mit Ihrem Domain-Administrator kann hilfreich sein! Darüber hinaus können falsch konfigurierte lokale Richtlinieneinstellungen oder falsche Registrierungsschlüssel Fehler verursachen. Im Augenblick

So passen Sie die Fensterrahmeneinstellungen unter Windows 11 an: Farbe und Größe ändern So passen Sie die Fensterrahmeneinstellungen unter Windows 11 an: Farbe und Größe ändern Sep 22, 2023 am 11:37 AM

Windows 11 bringt frisches und elegantes Design in den Vordergrund; die moderne Benutzeroberfläche ermöglicht es Ihnen, feinste Details, wie zum Beispiel Fensterränder, zu personalisieren und zu ändern. In diesem Leitfaden besprechen wir Schritt-für-Schritt-Anleitungen, die Ihnen dabei helfen, eine Umgebung zu erstellen, die Ihrem Stil im Windows-Betriebssystem entspricht. Wie ändere ich die Fensterrahmeneinstellungen? Drücken Sie +, um die Einstellungen-App zu öffnen. WindowsIch gehe zu Personalisierung und klicke auf Farbeinstellungen. Farbänderung Fensterränder Einstellungen Fenster 11" Breite="643" Höhe="500" > Suchen Sie die Option Akzentfarbe auf Titelleiste und Fensterrändern anzeigen und schalten Sie den Schalter daneben um. Um Akzentfarben im Startmenü und in der Taskleiste anzuzeigen Um die Designfarbe im Startmenü und in der Taskleiste anzuzeigen, aktivieren Sie „Design im Startmenü und in der Taskleiste anzeigen“.

Wie ändere ich die Farbe der Titelleiste unter Windows 11? Wie ändere ich die Farbe der Titelleiste unter Windows 11? Sep 14, 2023 pm 03:33 PM

Standardmäßig hängt die Farbe der Titelleiste unter Windows 11 vom gewählten Dunkel-/Hell-Design ab. Sie können es jedoch in jede gewünschte Farbe ändern. In diesem Leitfaden besprechen wir Schritt-für-Schritt-Anleitungen für drei Möglichkeiten, wie Sie Ihr Desktop-Erlebnis ändern und personalisieren können, um es optisch ansprechend zu gestalten. Ist es möglich, die Farbe der Titelleiste von aktiven und inaktiven Fenstern zu ändern? Ja, Sie können die Farbe der Titelleiste aktiver Fenster mit der App „Einstellungen“ ändern, oder Sie können die Farbe der Titelleiste inaktiver Fenster mit dem Registrierungseditor ändern. Um diese Schritte zu lernen, fahren Sie mit dem nächsten Abschnitt fort. Wie ändere ich die Farbe der Titelleiste in Windows 11? 1. Drücken Sie in der App „Einstellungen“ +, um das Einstellungsfenster zu öffnen. WindowsIch gehe zu „Personalisierung“ und dann

OOBELANGUAGE-Fehlerprobleme bei der Reparatur von Windows 11/10 OOBELANGUAGE-Fehlerprobleme bei der Reparatur von Windows 11/10 Jul 16, 2023 pm 03:29 PM

Wird auf der Windows Installer-Seite „Ein Problem ist aufgetreten“ zusammen mit der Anweisung „OOBELANGUAGE“ angezeigt? Aufgrund solcher Fehler bricht die Installation von Windows manchmal ab. OOBE bedeutet Out-of-the-Box-Erlebnis. Wie aus der Fehlermeldung hervorgeht, handelt es sich hierbei um ein Problem im Zusammenhang mit der OOBE-Sprachauswahl. Sie müssen sich keine Sorgen machen, Sie können dieses Problem durch eine geschickte Bearbeitung der Registrierung über den OOBE-Bildschirm selbst lösen. Schnelllösung – 1. Klicken Sie unten in der OOBE-App auf die Schaltfläche „Wiederholen“. Dadurch wird der Prozess ohne weitere Probleme fortgesetzt. 2. Verwenden Sie den Netzschalter, um das Herunterfahren des Systems zu erzwingen. Nach dem Neustart des Systems sollte OOBE fortgesetzt werden. 3. Trennen Sie das System vom Internet. Schließen Sie alle Aspekte von OOBE im Offline-Modus ab

So aktivieren oder deaktivieren Sie die Vorschau von Miniaturansichten in der Taskleiste unter Windows 11 So aktivieren oder deaktivieren Sie die Vorschau von Miniaturansichten in der Taskleiste unter Windows 11 Sep 15, 2023 pm 03:57 PM

Miniaturansichten in der Taskleiste können Spaß machen, aber auch ablenken oder stören. Wenn man bedenkt, wie oft Sie mit der Maus über diesen Bereich fahren, haben Sie möglicherweise ein paar Mal versehentlich wichtige Fenster geschlossen. Ein weiterer Nachteil besteht darin, dass es mehr Systemressourcen verbraucht. Wenn Sie also nach einer Möglichkeit suchen, ressourceneffizienter zu arbeiten, zeigen wir Ihnen, wie Sie es deaktivieren können. Wenn Ihre Hardware-Spezifikationen jedoch dafür geeignet sind und Ihnen die Vorschau gefällt, können Sie sie aktivieren. Wie aktiviere ich die Miniaturvorschau der Taskleiste in Windows 11? 1. Tippen Sie in der App „Einstellungen“ auf die Taste und klicken Sie auf „Einstellungen“. Klicken Sie unter Windows auf „System“ und wählen Sie „Info“. Klicken Sie auf Erweiterte Systemeinstellungen. Navigieren Sie zur Registerkarte „Erweitert“ und wählen Sie unter „Leistung“ die Option „Einstellungen“ aus. Wählen Sie „Visuelle Effekte“

Anleitung zur Anzeigeskalierung unter Windows 11 Anleitung zur Anzeigeskalierung unter Windows 11 Sep 19, 2023 pm 06:45 PM

Wir alle haben unterschiedliche Vorlieben, wenn es um die Anzeigeskalierung unter Windows 11 geht. Manche Leute mögen große Symbole, andere mögen kleine Symbole. Wir sind uns jedoch alle einig, dass die richtige Skalierung wichtig ist. Eine schlechte Schriftartenskalierung oder eine Überskalierung von Bildern kann bei der Arbeit ein echter Produktivitätskiller sein. Sie müssen daher wissen, wie Sie sie anpassen können, um die Fähigkeiten Ihres Systems optimal zu nutzen. Vorteile des benutzerdefinierten Zooms: Dies ist eine nützliche Funktion für Personen, die Schwierigkeiten haben, Text auf dem Bildschirm zu lesen. Es hilft Ihnen, mehr gleichzeitig auf dem Bildschirm zu sehen. Sie können benutzerdefinierte Erweiterungsprofile erstellen, die nur für bestimmte Monitore und Anwendungen gelten. Kann dazu beitragen, die Leistung von Low-End-Hardware zu verbessern. Dadurch haben Sie mehr Kontrolle darüber, was auf Ihrem Bildschirm angezeigt wird. So verwenden Sie Windows 11

10 Möglichkeiten, die Helligkeit unter Windows 11 anzupassen 10 Möglichkeiten, die Helligkeit unter Windows 11 anzupassen Dec 18, 2023 pm 02:21 PM

Die Bildschirmhelligkeit ist ein wesentlicher Bestandteil der Nutzung moderner Computergeräte, insbesondere wenn Sie über einen längeren Zeitraum auf den Bildschirm schauen. Es hilft Ihnen, die Belastung Ihrer Augen zu reduzieren, die Lesbarkeit zu verbessern und Inhalte einfach und effizient anzuzeigen. Abhängig von Ihren Einstellungen kann es jedoch manchmal schwierig sein, die Helligkeit zu verwalten, insbesondere unter Windows 11 mit den neuen Änderungen an der Benutzeroberfläche. Wenn Sie Probleme beim Anpassen der Helligkeit haben, finden Sie hier alle Möglichkeiten, die Helligkeit unter Windows 11 zu verwalten. So ändern Sie die Helligkeit unter Windows 11 [10 Möglichkeiten erklärt] Benutzer eines einzelnen Monitors können die folgenden Methoden verwenden, um die Helligkeit unter Windows 11 anzupassen. Hierzu zählen sowohl Desktop-Systeme mit einem einzelnen Monitor als auch Laptops. Lasst uns beginnen. Methode 1: Verwenden Sie das Action Center. Das Action Center ist zugänglich

So beheben Sie den Aktivierungsfehlercode 0xc004f069 in Windows Server So beheben Sie den Aktivierungsfehlercode 0xc004f069 in Windows Server Jul 22, 2023 am 09:49 AM

Der Aktivierungsprozess unter Windows nimmt manchmal eine plötzliche Wendung und zeigt eine Fehlermeldung mit diesem Fehlercode 0xc004f069 an. Obwohl der Aktivierungsprozess online erfolgt, kann dieses Problem bei einigen älteren Systemen mit Windows Server auftreten. Führen Sie diese ersten Prüfungen durch. Wenn sie Ihnen bei der Aktivierung Ihres Systems nicht weiterhelfen, fahren Sie mit der Hauptlösung fort, um das Problem zu beheben. Problemumgehung – Schließen Sie die Fehlermeldung und das Aktivierungsfenster. Starten Sie dann Ihren Computer neu. Wiederholen Sie den Windows-Aktivierungsprozess noch einmal von Grund auf. Fix 1 – Aktivierung über das Terminal. Aktivieren Sie das Windows Server Edition-System über das CMD-Terminal. Stufe – 1 Überprüfen Sie die Windows Server-Version. Sie müssen überprüfen, welchen W-Typ Sie verwenden

See all articles