search
HomeBackend DevelopmentPHP TutorialThe latest summary of PHP interview questions and application questions

本篇文章给大家分享PHP面试题之应用题最新汇总,有一定的参考价值,需要的朋友可以参考一下,希望对大家有所帮助。

相关推荐:《2021年PHP面试题大汇总(收藏)

1. 遍历目录下的所有文件及文件夹

function fileShow($dir){                           
    $handle = opendir($dir);                     // 打开目录句柄
    while ($file = readdir($handle)) {           // 返回目录句柄中的条目
        if ($file !== '..' && $file !== '.') {
            $f = $dir . '/' . $file;
            if (is_file($f)) {
                echo &#39;|--&#39; . $file . &#39;<br>&#39;;     // 代表文件
            } else {
                echo &#39;--&#39; . $file . &#39;<br>&#39;;      // 代表文件夹
                fileShow($f);
            }
        }
    }
}

2. 单例模式创建 mysqli 链接

class db
{
    private        $con;
    private static $instance;

    /**
     * 定义一个私有的构造函数,确保单例类不能通过 new 关键字实例化,只能被其自身实例化
     */
    private function __construct($host, $username, $password, $database)
    {
        $this->con = mysqli_connect($host, $username, $password);
        if (!$this->con) die("连接失败!");
        mysqli_select_db($database);
    }

    /**
     * 创建单例
     */
    public static function getInstance($host, $username, $password, $database)
    {
        if (self::$instance) return self::$instance;
        self::$instance = new db($host, $username, $password, $database);
    }

    /**
     * 关闭数据库连接
     */
    public function close()
    {
        return mysqli_close($this->con);
    }

    /**
     * 定义私有的__clone()方法,确保单例类不能被复制或克隆
     */
    private function __clone()
    {
    }
}

3. 获取一个网页地址的内容

$url = "http://www.phpres.com/index.html";
$str = file_get_contents($url);

// 或 
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_exec($ch);
curl_close($ch);

4. 从 url  获取文件的扩展名

function getExt1 () {
    $url_path = "http://www.sina.com.cn/abc/de/fg.php?id=1";
    $temp = pathinfo($url_path, PATHINFO_EXTENSION);  //    php?id=1
    $temp = explode("?", $temp);
    echo $temp[0];  // php
}

function getExt2 () {
    $url_path = "http://www.sina.com.cn/abc/de/fg.php?id=1";
    // ["scheme" => "http","host" => "www.sina.com.cn","path" => "/abc/de/fg.php","query" => "id=1"]
    $temp = parse_url($url_path);
    echo pathinfo($temp[&#39;path&#39;], PATHINFO_EXTENSION);
}

5. 获取一个文件的扩展名

function get_ext1 ($file_name) {
    return strrchr($file_name, &#39;.&#39;);                     // .jpg
}

function get_ext2 ($file_name) {
    return substr($file_name, strrpos($file_name, &#39;.&#39;)); // .jpg
}

function get_ext3 ($file_name) {
    $tmp = explode(&#39;.&#39;, $file_name);
    return array_pop($tmp);                              // jpg
}

function get_ext4 ($file_name) {
    return pathinfo($file_name, PATHINFO_EXTENSION);    // jpg
}

6. 转换驼峰式字符串

function conversion1 () { 
    $str = "open_door";
    return ucwords(str_replace('_',' ',$str)); // Open Door}

7. header( ) 跳转页面

header(&#39;location:index.php&#39;);     // 跳转页面
header("HTTP/1.1 404 Not Found"); // 实现页面404错误提示功能

8. 使用正则表达式去除其中的所有js脚本

# $str是一段html文本
$pattern = &#39;/<script.*>.*<\/script>/i&#39;;
preg_replace($pattern,&#39;&#39;,$str);

9. 将一个数组里的空值去掉

\S 匹配任何非空白字符。i不区分大小写

$arr = array("",1,2,3,"");
$ptn = "/\S+/i";  
print_r(preg_grep($ptn,$arr));

10. 给出年份和月份,输出指定月份的天数

function dayCount($year, $month) {
    echo date(&#39;t&#39;, strtotime($year . &#39;-&#39; . $month . &#39;-1&#39;));
}

11. 编写函数取得上一月的最后一天

function get_last_month_last_day(){
    $date = "2021-2-18";
    $time = strtotime($date);
    $day  = date('j',$time); // 获取该日期是当前月的第几天
    return date('Y-m-d',strtotime("-{$day} days",$time));}

12. 确保多个进程同时写入同一个文件成功

$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);

13. 将字符串08/26/2003替换为2003-08-26

 $str     = '08/26/2003';
 $pattern = '/(\d+)\/(\d+)\/(\d+)/';
 $rep     = '$3-$1-$2';
 echo preg_replace($pattern, $rep, $str);

14. 求两个日期的差数

// 方法一:用DateTime类
$day1 = &#39;2003-09-16&#39;;
$day2 = &#39;2011-11-23&#39;;
$d1 = new dateTime($day1);
$d2 = new dateTime($day2);
echo $d1->diff($d2)->days;

// 方法二,用时间戳计算
echo (strtotime($day2) - strtotime($day1))/(86400);

The above is the detailed content of The latest summary of PHP interview questions and application questions. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:learnku. If there is any infringement, please contact admin@php.cn delete
How to display or simulate a mobile preview of a user's website in a websiteHow to display or simulate a mobile preview of a user's website in a websiteAug 30, 2025 pm 06:18 PM

This article will explore how to embed a mobile preview of the target website in your website. Due to the limitations of homologous policies, using iframes directly may experience cross-domain problems. This article will introduce the use of reverse proxy to add CORS headers to solve cross-domain problems, and provide examples of using iframes and reverse proxy to implement mobile previews, and also briefly mentions how to use curl to get page source code.

Laravel cache strategy in-depth analysis: performance and reliability trade-offs between file cache and memory cacheLaravel cache strategy in-depth analysis: performance and reliability trade-offs between file cache and memory cacheAug 30, 2025 pm 06:09 PM

This article explores the performance and reliability trade-offs between file cache and memory cache in Laravel applications without relying on external services such as Redis or Memcached. We will analyze the working principles, advantages and disadvantages of the two caching mechanisms, and emphasize how file caching can use operating system-level memory cache to achieve efficient access and data persistence. At the same time, we will discuss the limitations of pure application memory cache, aiming to help developers choose the most appropriate cache strategy based on actual needs.

Get a list of WordPress users associated with a specific taxonomyGet a list of WordPress users associated with a specific taxonomyAug 30, 2025 pm 06:00 PM

This article aims to provide two ways to obtain a list of users associated with a specific taxonomy in WordPress. The first method indirectly associates users by querying articles published by users that belong to specific classification terms, and is suitable for standard WordPress settings. The second method is to directly execute SQL queries, which are suitable for specific scenarios where the user ID is directly used as the object ID in the taxonomy relationship table. The article will elaborate on the implementation code, applicable scenarios and precautions of these two methods.

WooCommerce Product Attribute Linkage: Dynamically hide/show other attributes based on selectionWooCommerce Product Attribute Linkage: Dynamically hide/show other attributes based on selectionAug 30, 2025 pm 05:45 PM

This article will guide you how to achieve dynamic linkage of product attributes through JavaScript in the WooCommerce product page. When a user selects a specific attribute value (such as Inventory in the Pricing attribute), the corresponding other attributes (such as Color) are automatically hidden or displayed, optimizing the user experience and simplifying the product configuration process.

Sylius UI Bundle Template Overlay: Safe Custom Image FilterSylius UI Bundle Template Overlay: Safe Custom Image FilterAug 30, 2025 pm 05:21 PM

This tutorial details how to customize the image_filter in sylius_taxon_image_widget through the template overlay mechanism without modifying the Sylius vendor file. We will demonstrate how to locate the original template, create the correct overlay path, and modify the code to implement custom image processing requirements, ensuring system maintainability and upgrade compatibility.

Get a list of user IDs associated with a specific taxonomyGet a list of user IDs associated with a specific taxonomyAug 30, 2025 pm 05:18 PM

This article describes how to get a list of user IDs associated with a specific taxonomy in WordPress. By using the get_users() function and the WP_Query class, we can iterate through all users and check whether they have published articles related to a specific taxonomy. In addition, a method is provided to directly execute SQL queries using the $wpdb object to obtain the user ID more efficiently.

Building a website embedded mobile preview function: strategies and practices to overcome cross-domain restrictionsBuilding a website embedded mobile preview function: strategies and practices to overcome cross-domain restrictionsAug 30, 2025 pm 05:15 PM

This article aims to solve the cross-domain resource sharing (CORS) problem encountered when embedding external websites into websites and implementing mobile previews. We will explore in detail how to use reverse proxy services such as CORS Anywhere to add necessary CORS header information to successfully implement interactive previews through iframes. In addition, the article will also introduce alternatives and limitations of server-side content crawling (such as PHP Curl), and provide corresponding code examples and precautions to help developers build stable and reliable preview functions.

Ultimate Member Plugin Custom Age Verification: Ensure that the user is over 13 years oldUltimate Member Plugin Custom Age Verification: Ensure that the user is over 13 years oldAug 30, 2025 pm 05:12 PM

This tutorial details how to implement custom date of birth verification in the Ultimate Member plugin to ensure that users are over 13 years old when they register. By using WordPress's add_action hook and Ultimate Member's error handling mechanism, we will show how to calculate user age and display custom error messages when conditions do not meet, thereby enhancing the compliance and user experience of the registration process.

See all articles

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Hot Topics