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