PHP技术人员-口试总结PHP篇
PHP技术人员--面试总结PHP篇
1、实现中文字符串截取无乱码方法
开启mbstring扩展,然后自定义函数:
<?php header('content-Type:text/html:charset=utf-8'); function substr_utf8($str, $start, $length = null) { return join("", array_slice( preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $start, $length) ); } //实例 (PS:^_^不错的php学习交流群:276167802,验证:csl,有兴趣的话可以加入进来一起讨论) $str = "我是一个good男孩!"; echo substr_utf8($str, 2, 4);
2、用PHP打印前一天的时间
<?php header('content-Type:text/html:charset=utf-8'); echo date('Y-m-d H:i:s',strtotime('-1 day'));
3、不适用第三个变量交换2个变量的值
<?php header('content-Type:text/html:charset=utf-8'); $a = 'a'; $b = 'b'; list($a,$b) = array($b,$a); echo $a,$b;
4、将1234567890,转换成1,234,567,890
header('content-Type:text/html:charset=utf-8'); $str = '1234567890'; //反转字符串 $str = strrev($str); //使用逗号分隔得到098,765,432,1, $str = chunk_split($str,3,','); //再次反转 $str = strrev($str); //去掉左边的, $str = ltrim($str,','); echo $str;
5、实现utf8字符串反转
不能使用strrev,中文会出错
function strrev_utf8($str){ return join("",array_reverse(preg_split("//u",$str))); } $str = "我是一个good男孩"; echo strrev_utf8($str); 6、取url的文件扩展名,尽量多的去实现方法 $str = "www.baidu.com/index.php"; function get_ext1($str){ return strrchr($str,'.'); } function get_ext2($str){ return substr($str,strrpos($str,'.')); } function get_ext3($str){ $str = pathinfo($str); return $str['extension']; } function get_ext4($str){ $arr = explode('.',$str); return $arr[count($arr)-1]; } function get_ext5($str){ $pattern = '/^[^\.]+\.([\w]+)$/'; return preg_replace($pattern,'${1}',basename($str)); }
7、写一个函数,将字符串open_door转换为OpenDoor
$str = "open_door"; function change_str($str){ $arr = explode('_',$str); $arr = array_map('ucfirst',$arr); return implode('',$arr); } echo change_str($str);
8、单例模式
<?php class Mysql{ private static $instance = null; private $conn; //设置为私有,不允许通过new获得对象 private function __construct(){ $conn = mysql_connect('localhost','root','123456'); } //获取实例方法 public static function getInstance(){ if(! self::$instance instanceof self){ self::$instance = new self; } return self::$instance; } //禁止克隆 private function __clone(){} } $db = Mysql::getInstance(); 9、写一段PHP代码,确保多个进程同时写入同一个文件成功 <?php $fp = fopen("lock.txt","w+"); if(flock($fp,LOCK_EX)){ //获得写锁 fwrite($fp,'write something'); flock($fp,LOCK_UN); }else{ echo "file is locking..."; } fclose($fp);
10、从一个完成的url获取文件扩展名
<?php $url = 'http://www.baidu.com/a/b/index.php?id=1'; $arr = parse_url($url); $fname = basename($arr['path']); $arr = explode('.',$fname); echo $arr[count($arr)-1];
11、写一个函数可以便利一个文件夹下的所有文件和子文件夹
<?php function my_scandir($dir){ $files = array(); if(is_dir($dir)){ if($handle = opendir($dir)){ while(($file = readdir($handle)) !== false){ if($file != "." && $file != ".."){ if(is_dir($dir.'/'.$file)){ $files[$file] = my_scandir($dir.'/'.$file); }else{ $files[] = $dir.'/'.$file; } } } closedir($handle); return $files; } } } var_dump(my_scandir('D:\wamp\www\study'));
12、论坛中无限分类实现原理
首先设计数据库表
create table category( cate_id int unsigned not null auto_increment primary key, cat_name varchar(30) not null default '', parent_id int unsigned not null default 0 ) engine=innodb charset=utf8; 然后用函数去递归实现,无限分类 function tree($arr,$pid=0,$level=0){ static $list = array(); foreach($arr as $v){ //如果是顶级分类,则存入$list //然后以此节点为根几点,遍历其子节点 if($v['parent_id'] == $pid){ $v['level'] = $level; $list[] = $v; tree($arr,$v['cat_id'],$level+1); } } return $list; }
13、计算2个文件的相对路径
<?php $a = '/a/b/c/d/a.php'; $b = '/a/b/e/f/b.php'; $arr1 = explode('/',dirname($a)); $arr2 = explode('/',dirname($b)); for($i=0,$len=count($arr2);$i<$len;$i++){ if($arr1[$i] != $arr2[$i]){ break; } } //不在用一个根目录 if($i == 1){ $ret = array(); } //在同一个根目录下 if($i != 1 && $i < $len){ $ret = array_fill(0,$len-$i,".."); } //在同一个目录下 if($i == $len){ $ret = array('./'); } $ret = array_merge($ret,array_slice($arr1,$i)); echo implode('/',$ret); 14、约瑟夫环问题 <?php function king($n,$m){ $monkey = range(1,$n); $i = 0; while(count($monkey) > 1){ $i += 1; $head = array_shift($monkey);//一个个出列最前面的 if( $i % $m != 0){ //如果不是m的倍数,则返回尾部,否则就出列了 array_push($monkey,$head); } } return $monkey[0]; } echo king(10,7);
15、PHP实现双向队列
<?php class Dqueue{ private $queue = array(); public function addFirst($item){ return array_unshift($this->queue,$item); } public function addLast($item){ return array_push($this->queue,$item); } public function getFirst(){ return array_shift($this->queue); } public function getLast(){ return array_pop($this->queue); } }
希望本文对广大php开发者有所帮助,感谢阅读本文。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Verwendung von return in der C-Sprache ist: 1. Für Funktionen, deren Rückgabewerttyp ungültig ist, können Sie die Rückgabeanweisung verwenden, um die Ausführung der Funktion vorzeitig zu beenden. 2. Für Funktionen, deren Rückgabewerttyp nicht ungültig ist, ist die Funktion von Die Return-Anweisung dient dazu, die Ausführung der Funktion zu beenden. 3. Beenden Sie die Ausführung der Funktion vorzeitig wenn die Funktion keinen Wert zurückgibt.

Funktion bedeutet Funktion. Es handelt sich um einen wiederverwendbaren Codeblock mit bestimmten Funktionen. Er kann Eingabeparameter akzeptieren, bestimmte Operationen ausführen und Ergebnisse zurückgeben. Code, um die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern.

Quellcode: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}# Ausgabe Die Ausgabe des obigen Codes kann einfach zu dem Schluss kommen: return wird ausgeführt, bevor wir uns schließlich ansehen, was auf der Bytecode-Ebene passiert. Im Folgenden wird ein Teil des Bytecodes der Methode case1 abgefangen und mit dem Quellcode verglichen, um die Bedeutung jeder Anweisung darin zu kommentieren

Titel: Beispiel für die Verwendung der Array.Sort-Funktion zum Sortieren eines Arrays in C#. Text: In C# ist Array eine häufig verwendete Datenstruktur, und häufig sind Array-Sortiervorgänge erforderlich. C# stellt die Array-Klasse bereit, die über die Sort-Methode verfügt, um Arrays bequem zu sortieren. In diesem Artikel wird gezeigt, wie Sie ein Array mithilfe der Array.Sort-Funktion in C# sortieren, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die grundlegende Verwendung der Array.Sort-Funktion verstehen. Array.So

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

In diesem Artikel lernen wir die Funktion enumerate() und den Zweck der Funktion „enumerate()“ in Python kennen. Was ist die Funktion enumerate()? Die Funktion enumerate() von Python akzeptiert eine Datensammlung als Parameter und gibt ein Aufzählungsobjekt zurück. Aufzählungsobjekte werden als Schlüssel-Wert-Paare zurückgegeben. Der Schlüssel ist der Index, der jedem Element entspricht, und der Wert sind die Elemente. Syntax enumerate(iterable,start) Parameter iterable – Die übergebene Datensammlung kann als Aufzählungsobjekt namens iterablestart zurückgegeben werden – Wie der Name schon sagt, wird der Startindex des Aufzählungsobjekts durch start definiert. wenn wir es ignorieren

Detaillierte Erläuterung der Rolle und Funktion der MySQL.proc-Tabelle. MySQL ist ein beliebtes relationales Datenbankverwaltungssystem. Wenn Entwickler MySQL verwenden, müssen sie häufig gespeicherte Prozeduren erstellen und verwalten. Die MySQL.proc-Tabelle ist eine sehr wichtige Systemtabelle. Sie speichert Informationen zu allen gespeicherten Prozeduren in der Datenbank, einschließlich des Namens, der Definition, der Parameter usw. der gespeicherten Prozeduren. In diesem Artikel erklären wir ausführlich die Rolle und Funktionalität der MySQL.proc-Tabelle

Beim Programmieren in PHP müssen wir häufig Arrays zusammenführen. PHP stellt die Funktion array_merge() bereit, um die Array-Zusammenführung abzuschließen. Wenn jedoch derselbe Schlüssel im Array vorhanden ist, überschreibt diese Funktion den ursprünglichen Wert. Um dieses Problem zu lösen, stellt PHP in der Sprache auch eine Funktion array_merge_recursive() bereit, die Arrays zusammenführen und die Werte derselben Schlüssel beibehalten kann, wodurch das Programmdesign flexibler wird. array_merge
