drupal2 Min Read

List all the Node ids which do not have images from my domain

Gorav Singal

September 04, 2017

TL;DR

Use a database query to scan node body fields for img tags with external URLs, identifying nodes that need image migration to your local domain.

List all the Node ids which do not have images from my domain

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

Image 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 7

See related articles

Share

Related Posts

Drupal Helpful codes for database queries

Drupal Helpful codes for database queries

Being a drupal user from last around 5 years, I used to know small codes for…

Drupal&#58; How to block a user by email programatically

Drupal&#58; How to block a user by email programatically

Many times, while administering your drupal website, you must have encountered…

Drupal 7&#58; How to save a node programmatically and add an image field from a public URL

Drupal 7&#58; How to save a node programmatically and add an image field from a public URL

Note: I have public URLs of these images, which I want to save. return…

How to add alt attribute of images in all of my drupal articles or other content type

How to add alt attribute of images in all of my drupal articles or other content type

I have a custom content type, and there are around 2000 number of nodes in my…

How to trim Meta Description tag value generated by Metatag module, to max 160 characters

How to trim Meta Description tag value generated by Metatag module, to max 160 characters

I was using On page optimization of the article pages, and found that meta…

How to get all image tags from an html - php code

How to get all image tags from an html - php code

I wanted to fetch all image tags from a big html, and wanted to perform some…

Latest Posts

AI Video Generation in 2025 — Models, Costs, and How to Build a Cost-Effective Pipeline

AI Video Generation in 2025 — Models, Costs, and How to Build a Cost-Effective Pipeline

AI video generation went from “cool demo” to “usable in production” in 2024-202…

AI Models in 2025 — Cost, Capabilities, and Which One to Use

AI Models in 2025 — Cost, Capabilities, and Which One to Use

Choosing the right AI model is one of the most impactful decisions you’ll make…

AI Image Generation in 2025 — Models, Costs, and How to Optimize Spend

AI Image Generation in 2025 — Models, Costs, and How to Optimize Spend

Generating one image with AI costs between $0.002 and $0.12. That might sound…

AI Coding Assistants in 2025 — Every Tool Compared, and Which One to Actually Use

AI Coding Assistants in 2025 — Every Tool Compared, and Which One to Actually Use

Two years ago, AI coding meant one thing: GitHub Copilot autocompleting your…

AI Agents Demystified — It's Just Automation With a Better Brain

AI Agents Demystified — It's Just Automation With a Better Brain

Let’s cut through the noise. If you read Twitter or LinkedIn, you’d think “AI…

Supply Chain Security — Protecting Your Software Pipeline

Supply Chain Security — Protecting Your Software Pipeline

In 2024, a single malicious contributor nearly compromised every Linux system on…