Home Backend Development PHP Problem PHP cannot get image src

PHP cannot get image src

May 07, 2023 am 10:28 AM

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.

1

2

3

4

5

6

function getImgSrc($html){

    $pattern = '/<img.*?src="(.*?)".*?>/is';

    preg_match_all($pattern, $html, $matches);

    $src_array = $matches[1];

    return $src_array;

}

Copy after login

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.

1

2

3

4

5

6

7

8

9

10

11

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;

}

Copy after login

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.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

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;

}

Copy after login

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 of this Website
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

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

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

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 8 JIT (Just-In-Time) Compilation: How it improves performance. PHP 8 JIT (Just-In-Time) Compilation: How it improves performance. Mar 25, 2025 am 10:37 AM

PHP 8's JIT compilation enhances performance by compiling frequently executed code into machine code, benefiting applications with heavy computations and reducing execution times.

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 Encryption: Symmetric vs. asymmetric encryption. PHP Encryption: Symmetric vs. asymmetric encryption. Mar 25, 2025 pm 03:12 PM

The article discusses symmetric and asymmetric encryption in PHP, comparing their suitability, performance, and security differences. Symmetric encryption is faster and suited for bulk data, while asymmetric is used for secure key exchange.

PHP Authentication & Authorization: Secure implementation. PHP Authentication & Authorization: Secure implementation. Mar 25, 2025 pm 03:06 PM

The article discusses implementing robust authentication and authorization in PHP to prevent unauthorized access, detailing best practices and recommending security-enhancing tools.

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 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 CSRF Protection: How to prevent CSRF attacks. PHP CSRF Protection: How to prevent CSRF attacks. Mar 25, 2025 pm 03:05 PM

The article discusses strategies to prevent CSRF attacks in PHP, including using CSRF tokens, Same-Site cookies, and proper session management.

See all articles