0

記事の画像とテキストを分離する必要があります。問題は、それらがデータベースの1つのフィールドにあることです。それで、ビューで画像をテキストから分離できるようにするにはどうすればよいですか?画像とテキストを一緒に置くことができないので、混乱しています

<? 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->imageのような画像を置く必要があります-これは私が欲しいものですが、joomlalatestnews_modには画像のフィールドがなく、自分で書く必要があるのか​​、これを編集する必要があるのか​​わかりませんモジュール、または私はこれのために他のモジュールを使用する必要がありますか?また、必要なフィールド$ item-> categoryを取得できません。CAT_IDしかありません。カテゴリフィールドを取得するにはどうすればよいですか?

4

1 に答える 1

2

Joomlaとの接触が少し失われたので、これが最も簡単な方法ではない可能性は十分にありますが、特に指定されていない場合は、正規表現を使用してイントロテキストから画像を引き出すことができますか?

次のようなパターンが必要です。 <img\b[^>]+?src\s*=\s*['"]?([^\s'"?#>]+)

これは、この質問からの抜粋です。正規表現を使用して、HTMLドキュメントの画像タグの最初の画像を検索します

編集:使用例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";
?>

これは比較的テストされておらず、機能しない可能性があり、機能する場合は、マークアップが不良なケースを見逃す可能性があることに注意してください。

于 2012-04-20T10:49:44.523 に答える