Problem Statement
I use drupal-7 in my website. I used to write articles and put images in that from google or from free image sources. Initially, I usually put image urls from their website only. i.e. I have img tag on my website, and source of image as external url of image from their website.
Example
``` My website: https://www.gyanbyte.comImage tags (example image tag):
Now, manytimes, external sources removed their images, and my website/page left with no image, which is not a good impression for my users. This article is to find those articles/blogs which have this issue.
<h2>Code</h2>
```php
/**
* See if a drupal node has images within my domain or not
**/
function requireModification($nid) {
$nd = node_load($nid);
//read body of node
$body = $nd->body['und'][0]['value'];
$doc = new DOMDocument();
$doc->loadHTML($body);
//fetch all images in body of node
$tags = $doc->getElementsByTagName('img');
$imgArr = array();
foreach ($tags as $tag) {
//read src tag, source of image
$imgSrc = $tag->getAttribute('src');
//checking if image path is an http path and not in my domain
if ((strpos($imgSrc, 'http') === 0) && (strpos($imgSrc, 'https://s3.amazonaws.com/images.MYDOMAIN.com') !== 0)) {
return true;
}
}
return false;
}
//My node type name
$node_type = "article";
$result = db_query("SELECT nid FROM node WHERE type = :nodeType ", array(':nodeType'=>$node_type));
$nids = array();
foreach ($result as $obj) {
if (requireModification($obj->nid) === true) {
$nids[] = $obj->nid;
}
}
//printing node ids, which have images apart from my domain
print_r($nids);Sample Output
``` ( [0] => 16 [1] => 26 [2] => 2235 [3] => 2236 [4] => 2349 [5] => 2350 [6] => 2351 [7] => 2352 [8] => 2353 [9] => 2354 [10] => 2355 [11] => 2356 [12] => 2357 [13] => 2358 [14] => 2359 [15] => 2360 [16] => 2361 [17] => 2362 [18] => 2363 [19] => 2364 [20] => 2365 ) ```Drupal version
Drupal 7See related articles
$ subscribe --weekly
One deep dive a week, in your inbox
System design, AI engineering, trading systems and interview prep. Tested code, real numbers. Free, and you can unsubscribe any time.
or read it on gyanbyte.substack.com












