ฉันพบว่าปลั๊กอิน resizer ใช้งานได้หากรูปภาพมีแอตทริบิวต์ต่อไปนี้:
สิ่งที่ฉันทำ ฉันสร้างกระบวนการแบทช์และค้นหาเนื้อหาทั้งหมดและค้นหารูปภาพ จากนั้นอิงตามรูปภาพที่ฉันโหลด ยูอิด และไฟล์แทนที่
บางอย่างเช่นรหัสต่อไปนี้อาจช่วยผู้ที่มีความต้องการคล้ายกัน:
ถ้า (preg_match_all('~<img.*?src=["\']+(.*?)["\']+~', $node->body->value, $match)) {
            $URIS = array_unique($ตรงกัน[1]);
            foreach ($URIS เป็น $imgUri) {
              $imgUriDecoded = urldecode($imgUri);
              $node->body->value = str_replace($imgUri, $imgUriDecoded, $node->body->value);
              $fileData = self::getFileDataByUrl($imgUriDecoded);
              $fileUuid = "xxx-เพียงเพื่อปรับขนาด";
              ถ้า ($fileData) {
                $fileUuid = $fileData->get('uuid')->ค่า ?? "xxx-เพียงเพื่อปรับขนาด";
              }
              // ข้าม Danger.jpg
              ถ้า ($fileUuid == "4f6db862-2c5d-4fb1-8d5b-830b89514af4") {
                ดำเนินต่อ;
              }
              $replacement = sprintf('<img data-entity-type="file" data-entity-uuid="%s"', $fileUuid);
              $node->body->value = str_replace("<img ", $replacement, $node->body->value);
              \Drupal::messenger()->addStatus($node->id());
            }
          }
      $node->setSyncing(จริง);
      $node->save();
    }
ไฟล์ต่อไปนี้ช่วยในการรับไฟล์โดย fileURI:
  ฟังก์ชันคงที่ getFileDataByUrl($fileURI) {
    $file_name = \Drupal::service('file_system')->ชื่อฐาน($fileURI);
    $target_file = \Drupal::entityTypeManager()
      ->getStorage('ไฟล์')
      ->loadByProperties(['ชื่อไฟล์' => $file_name]);
    $file_data = รีเซ็ต ($target_file);
    ถ้า ($file_data) {
      กลับ ($ file_data);
    }
    อื่น {
      กลับ FALSE;
    }
  }