Php 如何在joomla站点获取身体内容

Php 如何在joomla站点获取身体内容,php,joomla,Php,Joomla,我试图在Joomla站点页面中找到所有图像。我计划使用以下代码: preg_匹配('//i',$pageBody,$imageArray) 如果我能够将页面的内容分配给变量$pageBody,我相信上面的代码会起作用。但是我找不到正确的方法 我找到了JApplicationWeb和JApplicationSite,但我没能做到 我正在使用Joomla 3.7.4。您似乎正在寻找系统类型插件的事件 您应该创建一个插件并添加上述事件。这将类似于下面的方法 class plgSystemCustom

我试图在Joomla站点页面中找到所有图像。我计划使用以下代码:

preg_匹配('//i',$pageBody,$imageArray)

如果我能够将页面的
内容分配给变量
$pageBody
,我相信上面的代码会起作用。但是我找不到正确的方法

我找到了
JApplicationWeb
JApplicationSite
,但我没能做到


我正在使用Joomla 3.7.4。

您似乎正在寻找系统类型插件的
事件

您应该创建一个插件并添加上述事件。这将类似于下面的方法

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);
        }
}

你能说说为什么你想得到所有的图像吗?如果要修改图像(例如缩放图像),最好的方法可能是编写内容插件并修复图像,或者编写模板覆盖以覆盖输出。如果您只需要所有图像的列表,可以在onBeforeRender的系统插件中完成。请详细说明你想对图像做什么…我想让页面中的图像能够添加到开放图形标记(Facebook、Twitter等)。@jonasfh,我想让页面中的图像能够添加到开放图形标记(Facebook、Twitter等)。当你想解析有效的HTML时,不应该使用regex(而且你的模式在技术上是有缺陷的/不可靠的)。DomDocument将使代码更可读、可维护和可靠。(我的代码片段将根据img标记中属性的数量和顺序工作,你不必为适应不同的引用符号而烦恼。)我想不用插件就可以做到这一点(我正在构建一个模板)。我想我以前的错误是,我在使用
$app->getBody()
时没有使用
onAfterRender
事件。这是唯一的方法吗?我真正想做的是能够在当前Joomla页面中找到图像,并将其用作打开的图形标记(
og:image
).我只知道这个方法。除非你有所有的文件,否则无法搜索图像。