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.
- 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.
- 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.
- 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.
- 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.
- 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!

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

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.

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.

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

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

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.

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

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


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

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

Hot Article

Hot Tools

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
Visual web development tools

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

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

WebStorm Mac version
Useful JavaScript development tools