


Sharing of questions about PHP core technology in PHP interview questions
In our previous article, we introduced a summary of PHP interview questions, as well as a summary of thinkphp and note-taking questions in PHP interview questions. These are enough for novices and friends with little work experience. But for some experts or even friends who have worked for three or four years, the PHP interview questions we introduced before are obviously not enough, so today we will summarize the PHP core technology in the PHP interview questions!
PHP core technology
1. Please write a piece of PHP code to ensure that multiple processes can write the same file successfully at the same time
Core idea: lock
<?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);?>
2.Write a function to retrieve the file extension from a standard URL as efficiently as possible , for example: http://www.php.cn/abc/de/fg.php?id=1 Need to remove php or .php
<?php // 方案一 function getExt1($url){ $arr = parse_url($url); //Array ( [scheme] => http [host] => www.php.cn [path] => /abc/de/fg.php [query] => id=1 ) $file = basename($arr['path']); $ext = explode('.', $file); return $ext[count($ext)-1]; } // 方案二 function getExt2($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); } } $path = "http://www.php.cn/abc/de/fg.php?id=1"; echo getExt1($path); echo "<br />"; echo getExt2($path);?>
Related questions: Use more than five kinds Method to obtain the extension of a file, requirements: dir/upload.image.jpg, find .jpg or jpg, must use PHP's own processing function for processing, the method cannot be obviously repeated, can be encapsulated into a function, such as get_ext1(filename ),getext2(file_name)
3. Briefly describe the implementation principle of unlimited classification in the forum
Create the category table as follows:
CREATE TABLE category( cat_id smallint unsigned not null auto_increment primary key comment'类别ID', cat_name VARCHAR(30)NOT NULL DEFAULT''COMMENT'类别名称', parent_id SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT'类别父ID')engine=MyISAM charset=utf8;
Write a function to traverse recursively to achieve infinite classification
<?php 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; } ?>
4. Write a regular expression to filter all JS/VBS scripts on the web page (ie. The script tag and its contents are removed)
Filter javascript script reference:
<?php header("content-type:text/html;charset=utf-8"); $script = "以下内容不显示:<script type='text/javascript'>alert('cc');</script>"; $pattern = '/<script[^>]*?>.*?</script>/si'; echo preg_replace($pattern, "脚本内容", $script);//以下内容不显示:脚本内容 ?>
5. Write a PHP function that can create multi-level directories
<?php /** * 创建多级目录 * @param $path string 要创建的目录 * @param $mode int 创建目录的模式,在windows下可忽略 */ function create_dir($path,$mode = 0777) { if (is_dir($path)) { # 如果目录已经存在,则不创建 echo "该目录已经存在"; } else { # 不存在,创建 if (mkdir($path,$mode,true)) { echo "创建目录成功"; } else { echo "创建目录失败"; } } }?>
6. What is PHP’s garbage collection mechanism?
PHP can automatically manage memory and clear objects that are no longer needed.
PHP uses a simple garbage collection mechanism called reference counting. Each object contains a reference counter, and each reference connected to the object increases the counter by one. When reference leaves the living space or is set to NULL, the counter is decremented by 1. When an object's reference counter reaches zero, PHP knows that you no longer need to use the object and releases the memory space it occupies.
7. Write a function that can traverse all files and subfolders in a folder
<?php function my_scandir($dir){ $files = array(); if(is_dir($dir)){ if ($handle = opendir($dir)) { while (($flie = readdir($handle))!== false) { if ($flie!="." && $file!="..") { if (is_dir($dir."/".$file)) { $files[$file] = my_scandir($dir."/".$file); } else { $files[] = $dir."/".$file; } } } closedir($handle); return $files; } } }?>
8. How to determine whether a string is in PHP Is a legal date pattern: 2007-03-13 13:13:13. The code is required to be no more than 5 lines
<?php function checkDateTime($data){ if (date('Y-m-d H:i:s',strtotime($data)) == $data) { return true; } else { return false; } } // 示例 $data = '2015-06-20 13:35:42'; var_dump(checkDateTime($data));//bool(true) $data = '2015-06-36 13:35:42'; var_dump(checkDateTime($data));//bool(false)?>
9. How to get the key value of an array in PHP?
Use key() to get the key name of the current element in the array, and use current() to return the value of the current element.
Use array_keys() to get all the key names in the array.
Use the foreach structure foreach($arr as key=>value) to obtain the key name and value respectively through key and value.
10. If the template is a smart template. How to use section statement to display a group named $data. For example:
$data=array(0=>array('id'=>8,'name'=>'name1'),1=>array('id'=>10,'name'=>'name2'),2=>array('id'=>15,'name'=>'name3') );
Write the code on the template page? How to display it if using foreach statement?
Use section statement:
<{section name=test loop=$data start=0 step=1}> id:<{$data[test].id}><br/> name:<{$data[test].name}> <br/> <br/> <{sectionelse}> 数组为空 <{/section}>
Use foreach statement:
<{foreach from=$data item=test}> id:<{$test.id}><br/> name:<{$test.name}> <br/> <br/> <{foreachelse}> 数组为空 <{/foreach}>
Summary:
In our article, we mainly summarize for you the core technology of PHP in the PHP interview questions. It may be a bit in-depth for novices, but for experienced friends, this is indeed a good choice! Hope this helps!
related suggestion:
2017 recruitment season: Super summary of PHP interview questions!
The above is the detailed content of Sharing of questions about PHP core technology in PHP interview questions. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
