search
HomeBackend DevelopmentPHP ProblemPHP cannot get image src

With the continuous development of network technology, web pages not only use text as the main content, but also gradually move toward the integration of multimedia elements such as pictures, audio, and video. Nowadays, when we visit web pages, we rely more on these multimedia elements, which enrich our aesthetic experience and make the pages more vivid and intuitive.

Among them, pictures are one of the most common multimedia elements. In web development, using images can enrich page content and enrich user experience. Sometimes, we need to obtain the src address of the image on the server side to perform related operations. In PHP, there are many ways to get the src address of an image, but you may encounter some problems, causing the acquisition to fail. This article will introduce in detail the reasons and solutions for why PHP cannot obtain the image src.

1. Methods to get the src of the image

In PHP, there are many ways to get the src address of the image. Here are two common methods.

  1. Use regular expressions to get the image src

In HTML, the src of the image address is usually written in the src attribute in the img tag. Therefore, we can use regular expressions to get the src attribute value in the img tag.

function getImgSrc($html){
    $pattern = '/<img  src="/static/imghwm/default1.png" data-src="(.*?)" class="lazy" . alt="PHP cannot get image src" >/is';
    preg_match_all($pattern, $html, $matches);
    $src_array = $matches[1];
    return $src_array;
}

In the above function, $html is the string form of an html page. Use regular expressions to match the src attribute values ​​of all img tags in HTML and return an array $src_array, which stores the src addresses of all images.

  1. Use DOMDocument to get the image src

DOMDocument is one of the main tools for working with XML and HTML documents in PHP. It provides a series of methods to easily obtain elements and their attributes in an HTML document. We can use DOMDocument to get the src attribute value of the img tag.

function getImgSrc($html){
    $dom = new DOMDocument();
    @$dom->loadHTML($html);
    $xpath = new DOMXPath($dom);
    $src_array = array();
    $img_list = $xpath->query('//img');
    foreach($img_list as $img){
        $src_array[] = $img->getAttribute('src');
    }
    return $src_array;
}

In the above function, $html is also the string form of an html page. Using DOMDocument, create a document object $dom and use the loadHTML method to load the html page. Next, use DOMXPath to obtain all img tags, and then traverse each img tag to obtain its src attribute value.

2. Reasons and solutions for acquisition failure

When using the above method to obtain the image src, you may encounter acquisition failure. Here are several possible causes and corresponding solutions.

  1. The incoming html is incomplete

The $html parameter passed in the getImgSrc function should be a complete html document, but sometimes, we only get part of it Page content, or some incomplete tags in the HTML document will cause the acquisition to fail. At this point, we need to ensure that the incoming html document is complete and correct.

  1. The picture src uses a relative path

Sometimes, the src attribute of the picture uses a relative path, so when we get the picture on the server side, we need to change it Convert to absolute path. You can use PHP's dirname function and parse_url function to convert relative paths into absolute paths.

function getAbsoluteUrl($base, $relative){
    $parse_base = parse_url($base);
    if(!isset($parse_base['path'])){
        $parse_base['path'] = '/';
    }
    $dir = dirname($parse_base['path']);
    if($relative[0] == '/'){
        $relative = substr($relative, 1);
    }
    if($relative[0] == '.'){
        $i = 0;
        while(substr($relative, 0, 2) == './'){
            $relative = substr($relative, 2);
        }
        $dir .= '/';
    }
    $result = $parse_base['scheme']."://".$parse_base['host'];
    if(isset($parse_base['port']) && $parse_base['port'] != '80'){
        $result .= ':'.$parse_base['port'];
    }
    $result .= $dir.$relative;
    return $result;
}

In the above function, $base is the base address of the relative path, and $relative is the relative path. Use the dirname function to obtain the directory path $dir of the base address, and then splice out the complete absolute path based on the relative path.

  1. Network reasons

Getting the image src will also be affected by the network environment. If the network is unstable or interrupted, the acquisition will fail. At this time, you can try to obtain it again or wait for the network to stabilize and try to obtain it again.

To sum up, this article introduces the reasons and solutions for why PHP cannot obtain the image src. Obtaining image src on the server side is a common development requirement. Mastering the acquisition method and some solutions when encountering problems can better improve development efficiency and reduce the impact of problems.

The above is the detailed content of PHP cannot get image src. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
ACID vs BASE Database: Differences and when to use each.ACID vs BASE Database: Differences and when to use each.Mar 26, 2025 pm 04:19 PM

The article compares ACID and BASE database models, detailing their characteristics and appropriate use cases. ACID prioritizes data integrity and consistency, suitable for financial and e-commerce applications, while BASE focuses on availability and

PHP Secure File Uploads: Preventing file-related vulnerabilities.PHP Secure File Uploads: Preventing file-related vulnerabilities.Mar 26, 2025 pm 04:18 PM

The article discusses securing PHP file uploads to prevent vulnerabilities like code injection. It focuses on file type validation, secure storage, and error handling to enhance application security.

PHP Input Validation: Best practices.PHP Input Validation: Best practices.Mar 26, 2025 pm 04:17 PM

Article discusses best practices for PHP input validation to enhance security, focusing on techniques like using built-in functions, whitelist approach, and server-side validation.

PHP API Rate Limiting: Implementation strategies.PHP API Rate Limiting: Implementation strategies.Mar 26, 2025 pm 04:16 PM

The article discusses strategies for implementing API rate limiting in PHP, including algorithms like Token Bucket and Leaky Bucket, and using libraries like symfony/rate-limiter. It also covers monitoring, dynamically adjusting rate limits, and hand

PHP Password Hashing: password_hash and password_verify.PHP Password Hashing: password_hash and password_verify.Mar 26, 2025 pm 04:15 PM

The article discusses the benefits of using password_hash and password_verify in PHP for securing passwords. The main argument is that these functions enhance password protection through automatic salt generation, strong hashing algorithms, and secur

OWASP Top 10 PHP: Describe and mitigate common vulnerabilities.OWASP Top 10 PHP: Describe and mitigate common vulnerabilities.Mar 26, 2025 pm 04:13 PM

The article discusses OWASP Top 10 vulnerabilities in PHP and mitigation strategies. Key issues include injection, broken authentication, and XSS, with recommended tools for monitoring and securing PHP applications.

PHP XSS Prevention: How to protect against XSS.PHP XSS Prevention: How to protect against XSS.Mar 26, 2025 pm 04:12 PM

The article discusses strategies to prevent XSS attacks in PHP, focusing on input sanitization, output encoding, and using security-enhancing libraries and frameworks.

PHP Interface vs Abstract Class: When to use each.PHP Interface vs Abstract Class: When to use each.Mar 26, 2025 pm 04:11 PM

The article discusses the use of interfaces and abstract classes in PHP, focusing on when to use each. Interfaces define a contract without implementation, suitable for unrelated classes and multiple inheritance. Abstract classes provide common funct

See all articles

Hot AI Tools

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.

Undress AI Tool

Undress AI Tool

Undress images for free

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

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools