ugrás a tartalomhoz

Archívum - Dec 4, 2018 - Fórum téma

Kép felbontása alapján változó "class" elem

athlonator · 2018. Dec. 4. (K), 18.02
Üdv.

Van egy adatbázisom, benne egy cikkek nevezetű tábla. A táblából kiolvasom az adatokat, amik a '$text' változóban rögzülnek,
Ezt vizsgálja a preg_replace, es keresi meg a képhivatkozásokat (<img>), hogy aztán ebből egy linket csináljon a kép címével, és a képnézegető várt class elemeivel. Szeretnén hogy az adott fv-be beszúrni egy feltételt, a kép felbontására vonatkozólag, vagy az is jó, ha a könyvtárat vizsgálja. De elég lenne csak annyi, hogy ezeket a kis képeket ne alakítsa át a függvényem hivatkozássà. Sőt, ez lenne a legjobb.
Hogyan tudnám átvariálni a kódom?
Előre is köszönöm a segítségeteket.
  1. function callbackFunction($matches)  
  2. {  
  3. $subPattern = '/(?<name>\w+)\s*=\s*(['"])(?<value>[^\2]*?)\2/is';  
  4. $resultPattern = '<a data-title="%s" class="example-image-link" data-lightbox="example-set" href="%s">%s</a>';  
  5.   
  6. $title = "";  
  7. $href = "";  
  8. if (preg_match_all($subPattern$matches[1], $subMatches))  
  9. {  
  10. foreach ($subMatches['name'as $idx => $name)  
  11. {  
  12. switch (strtolower($name))  
  13. {  
  14. case "alt":  
  15. $title = $subMatches['value'][$idx];  
  16. break;  
  17. case "src":  
  18. $parts = explode("/"$subMatches['value'][$idx]);  
  19. $last = array_pop($parts);  
  20. array_push($parts$last);  
  21. $href = implode("/"$parts);  
  22. break;  
  23. }  
  24. }  
  25. if ($href)  
  26. {  
  27. return sprintf($resultPattern$title$href$matches[0]);  
  28. }  
  29. else  
  30. {  
  31. return $matches[0];  
  32. }  
  33. }  
  34.   
  35. else  
  36. {  
  37. return $matches[0];  
  38. }  
  39. }  
  40.   
  41. $pattern = '/<img\s+([^>]+)\/?>/is';  
  42.   
  43. $text = preg_replace_callback($pattern'callbackFunction'$text);?>  
  44. <div class="text"> <?echo $text?></div>