我需要将文章的图像和文本分开,问题是它们在数据库的一个字段中,所以如何在视图中将其与文本分开?因为我不能把图像和文字放在一起,是一团糟
<? foreach ($list as $item) : ?>
<?
$year = date('Y', strtotime($item->created));
$month = date('m', strtotime($item->created));
$day = date('d', strtotime($item->created));
$shortDescription = cutString($item->introtext, 100);
?>
<div class="footerItem">
<?= $day; ?>-<?= $month; ?>-<?= $year; ?>
<p><a href="<?= $item->link; ?>"><?= $item->title; ?></a></p>
<p>
<?= $shortDescription; ?>
</p>
</div>
<?php endforeach; ?>
所以我需要把像这样的图像$ item-&gt;图像 - 这就是我想要的,但是在joomla latestnews_mod中,没有带图像的字段,我不知道我是否需要自己编写,或编辑此模块,或者我需要使用其他模块吗?而且我也无法获得我需要的字段$ item-&gt;类别,只有CAT_ID,我怎样才能获得类别字段?
答案 0 :(得分:2)
我已经失去了与Joomla的联系,所以这完全有可能这不是最简单的方法,但如果没有特别给出,你可以使用正则表达式从介绍文本中提取图像吗?
你需要一个类似的模式:
<img\b[^>]+?src\s*=\s*['"]?([^\s'"?#>]+)
这是从这个问题中得出的:Regex to find the first image in an image tag in an HTML document
编辑:使用preg_match
的示例:
<?php
// This is the Regex pattern from above.
$pattern = '/<img\b[^>]+?src\s*=\s*[\'"]?([^\s\'"?#>]+)/';
// Perform the search, matches will be stored in $matches
preg_match($pattern, $item->introtext, $matches );
echo "Image src is: " . $matches[1] . "\n";
?>
请注意,这是相对未经测试的,可能无效,如果确实如此,可能会错过标记错误的情况!