global $db;
$query = $db->query("SELECT source FROM posts_photos UNION SELECT cover FROM posts_articles") or _error("SQL_ERROR_THROWEN");
$database_files = [];
while ($row = mysqli_fetch_assoc($query)) {
$database_files[] = $row['source'];
}
print_r($database_files);
Este posibil sa selectez si din text doar locatia fotografiilor si sa le afisez in acelasi array?
În mysql s-ar putea face ce vrei doar creând funcții, dar nu e o idee bună deloc. Deci, ia-ți gândul de la asta.
Ce ai tu nevoie acum este să parsezi conținutul, să-ți extragă locațiile imaginilor din acel text.
Tehnica bbcode te-ar putea ajuta. Atunci când inserezi imaginile în conținut le pui cam așa [img title="Hello"]locatie/imagine.jpg[/img] și apoi parsezi conținutul cu php
Codul de care ai nevoie diferă în funcție de ce tip de fișiere și atribute o să ai în acele bbcode-uri. Poți începe de aici: php parse bbcodes - Google zoeken
Ok. Atunci nu-ți rămâne decât să parsezi conținutul cu riscul să intri (înlocuiești?) într-un cod pus de utilizator. Căci nu scrie nicăieri că <img src="https://site.ro/content/uploads/photos/2021/04/demo_a827bcaf42d1b17f83cd35aa258d7b88.jpg" alt="" width="1024" height="872" />` e pus de tine și nu de un utilizator. Cel puțin dacă am înțeles corect despre ce e vorba (postări ale utilizatorilor).
În fine. Dacă foloseai bbcode-uri, aș fi zis că ai o variantă folosind preg_match/preg_match_all, dar la cum arată conținutul, necoafat, va trebui să citești caracter cu caracter.
Ai mai putea folosi clasa DOMDocument din php: PHP: DOMDocument::loadHTML - Manual. Depinde de ce vrei să faci mai departe cu imaginile (cu tag-urile respective).