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.

function callbackFunction($matches)
{
$subPattern = '/(?<name>\w+)\s*=\s*(['"])(?<value>[^\2]*?)\2/is';
$resultPattern = '<a data-title="%s" class="example-image-link" data-lightbox="example-set" href="%s">%s</a>';

$title = "";
$href = "";
if (preg_match_all($subPattern, $matches[1], $subMatches))
{
foreach ($subMatches['name'] as $idx => $name)
{
switch (strtolower($name))
{
case "alt":
$title = $subMatches['value'][$idx];
break;
case "src":
$parts = explode("/", $subMatches['value'][$idx]);
$last = array_pop($parts);
array_push($parts, $last);
$href = implode("/", $parts);
break;
}
}
if ($href)
{
return sprintf($resultPattern, $title, $href, $matches[0]);
}
else
{
return $matches[0];
}
}

else
{
return $matches[0];
}
}

$pattern = '/<img\s+([^>]+)\/?>/is';

$text = preg_replace_callback($pattern, 'callbackFunction', $text);?>
<div class="text"> <?echo $text?></div>