2017-08-01 40 views
0

我試圖在Joomla網站頁面中查找所有圖片。我打算使用下面的代碼:如何獲取joomla網站中的內容

preg_match('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $pageBody, $imageArray);

我相信,如果我能夠在<body>內容頁面賦給變量$pageBody上面的代碼會工作。但我找不到正確的方法來做到這一點。

我發現JApplicationWebJApplicationSite但我無法做到。

我使用的是Joomla 3.7.4。

+0

你能說一些爲什麼你想獲得所有的圖像嗎?如果你想修改圖像(例如縮放圖像),最好的方法可能是編寫一個內容插件並修改圖像,或者編寫模板覆蓋來覆蓋輸出。如果您只需要所有圖像的列表,可以在onBeforeRender的系統插件中完成。請詳細說明您想要對圖像執行什麼操作... – jonasfh

+0

我想讓頁面中的圖像能夠添加到Open Graph標籤(Facebook,Twitter等)中。 – EnduranceCode

+0

@jonasfh,我想讓頁面中的圖像能夠添加到Open Graph標籤(Facebook,Twitter等)中。 – EnduranceCode

回答

1

看來你正在尋找onAfterRender事件的系統類型插件。

Creating a Plugin for Joomla

你應該創建一個插件,並添加上面的事件。這將是類似於下面的方法。

class plgSystemCustomplugin extends JPlugin 
{ 


     /** 
     * 
     * @return boolean 
     * @throws Exception 
     */ 
     public function onAfterRender() 
     { 
       $app = JFactory::getApplication(); 
       $sHtml = $app->getBody(); 

       // Modify $sHtml 

       // Set body back 
       $app->setBody($sHtml); 
     } 
} 
+0

我想做一個沒有插件(我正在構建一個模板)。我想我以前的錯誤是我沒有使用'onAfterRender'事件使用'$ app-> getBody()'。這是唯一的方法嗎?我真正想要做的是能夠在當前的Joomla頁面中找到圖像,並將其用作Open Graph標籤('og:image')。 – EnduranceCode

+1

我只知道這種方式。除非您擁有所有文件,否則無法搜索圖像。 – Irfan

+0

謝謝。非常感謝您的幫助。 – EnduranceCode