需要帮助从pinterest rss源中提取图像src url吗

需要帮助从pinterest rss源中提取图像src url吗,rss,expressionengine,pinterest,magpie,Rss,Expressionengine,Pinterest,Magpie,基本上,我正在尝试向ExpressionEngine站点添加Pinterest提要小部件。我发现这非常有帮助,但问题是我不能使用引用的标签剥离插件,因为我正在帮助的站点使用ExpressionEngine 1x,而该插件仅适用于2x 如果您查看Pinterest rss源,如:您将看到在标记中有Pinterest图像的url,以及pin的标题、标记和指向Pinterest上pin的相对链接。我希望能够只提取'img src'后面的双引号之间的值 本教程还使用了一个名为Magpie的插件,该插件已

基本上,我正在尝试向ExpressionEngine站点添加Pinterest提要小部件。我发现这非常有帮助,但问题是我不能使用引用的标签剥离插件,因为我正在帮助的站点使用ExpressionEngine 1x,而该插件仅适用于2x

如果您查看Pinterest rss源,如:您将看到在
标记中有Pinterest图像的url,以及pin的标题、标记和指向Pinterest上pin的相对链接。我希望能够只提取'img src'后面的双引号之间的值

本教程还使用了一个名为Magpie的插件,该插件已经加载到网站上,所以我在那里很好

理想情况下,我希望我的代码如下所示:

{exp:magpie url="http://pinterest.com/amazon/feed.rss" parse="inward"
refresh="720" limit="5"} {items}<a href="{link}" target="_blank"><img
src="<?php code-to-grab-the-img-src->{description} ?>"
alt="{title}"></a>{/items} {/exp:magpie}
{exp:mappieurl=”http://pinterest.com/amazon/feed.rss“parse=”向内“
refresh=“720”limit=“5”}{items}{/items}{/exp:mappie}
显然,“获取img src->{description}的代码”不起作用,所以我正在寻找一个函数或一些可以的东西。我如何告诉喜鹊只提取img src值而不使用SuperGeekery标签剥离器插件


谢谢

Sure-在输出时启用PHP,然后使用以下正则表达式:

{exp:magpie url="http://pinterest.com/amazon/feed.rss" refresh="720" limit="5"}
{items}
<?php
    preg_match("/src=\"(.+)(?=\"&gt;&lt;\/a&gt;)/ui", '{description}', $matches);
    $src = (!empty($matches)) ? $matches[1] : '/path/to/default-image.png';
?>
    <a href="{link}" target="_blank"><img src="<?php echo $src; ?>" alt="{title}"></a>
{/items}
{/exp:magpie}
{exp:mappieurl=”http://pinterest.com/amazon/feed.rss“refresh=“720”limit=“5”}
{items}
{/items}
{/exp:magpie}
此代码包括另一个映像的回退,以防由于某种原因无法找到映像
src


没有经过测试,但应该可以工作。

RSS解析很难!如果你愿意做得更复杂一点,将提要内容引入EE,我很幸运使用了仅EE2的DataGrab,因此你可能会对免费的EE1前身感到高兴:。

我建议构建一个简单的插件来处理这个问题,你可以使用与相同的正则表达式(由于获取
的问题而失败){description}
内容转换为PHP)

以下是您的插件的外观:

<?php

$plugin_info = array(
  'pi_name' => 'Get Pinterest Image',
  'pi_version' => '1.0',
  'pi_author' => 'Derek Hogue',
  'pi_author_url' => 'http://amphibian.info',
  'pi_description' => 'Grabs the image URL from a Pinterest RSS feed description element.',
  'pi_usage' => Get_pinterest_image::usage()
  );

class Get_pinterest_image
{

var $return_data = "";

  function Get_pinterest_image()
  {
    global $TMPL;
    $fallback = $TMPL->fetch_param('fallback_image');
    preg_match("/src=\"(.+)(?=\"&gt;&lt;\/a&gt;)/ui", $TMPL->tagdata, $matches);
    $this->return_data = (!empty($matches)) ? $matches[1] : $fallback;
  }

  function usage()
  {
  ob_start(); 
  ?>
    {exp:get_pinterest_image fallback="/path/to/fallback_image.png"}{description}{/exp:get_pinterest_image}

    Where {description} is the "description" XML node from the Pinterest RSS feed (likely parsed via the Magpie plugin).
  <?php
  $buffer = ob_get_contents();
  ob_end_clean(); 
  return $buffer;
  }  

}

?>

{exp:get\u pinterest\u image fallback=“/path/to/fallback\u image.png”}{description}{/exp:get\u pinterest\u image}
其中{description}是Pinterest RSS提要中的“description”XML节点(可能通过Magpie插件解析)。
根据EE惯例,这将被命名为get\u pinterest\u image.php,并进入您的/plugins/文件夹。然后在您的模板中:

{exp:magpie url="http://pinterest.com/amazon/feed.rss" refresh="720" limit="5" parse="inward"}
    {items}
        <a href="{link}" target="_blank"><img src="{exp:get_pinterest_image fallback="/path/to/fallback_image.png"}{description}{/exp:get_pinterest_image}" alt="{title}" /></a>
    {/items}
{/exp:magpie}
{exp:mappieurl=”http://pinterest.com/amazon/feed.rss“refresh=“720”limit=“5”parse=“intrown”}
{items}
{/items}
{/exp:magpie}

Hmm,我得到了5个损坏的图像框,因为img src是/path/to/default-image.png的后备版本,它还不存在。link和alt标记正确工作。猜测原因吗?非常感谢!我需要了解rexeg。抱歉,模式不够具体。请尝试更新的代码?不,仍然为我提供默认图像路径。我在该测试仪上运行了正则表达式和一个标记的值:结果是一个空数组。非常感谢您的支持帮我解决这个问题。Ack,对不起,忘了转义正斜杠。再试一次!仍然不走运。我认为它在实际从{description}中提取输入字符串时遇到问题。我尝试使用非常简单的正则表达式填充src=“”什么都没有用。你不能在Magpie中使用正则表达式来深入到XML对象的特定部分,这可能是Magpie的一个限制吗?我很抱歉,但正如你可能知道的那样,我刚刚学到了很多。我到底在插件文件中的什么地方粘贴正则表达式?我尝试了一些不同的地方,但在获取plu时遇到了麻烦当我刷新插件以查看是否可以看到我新创建的插件时,EE中的gin管理器不会爆炸。你能告诉我这应该放在哪个区域吗?你帮了我很大的忙,谢谢。为了在我将插件ftp到/sys/plugins/目录后刷新插件管理器时更清楚,我得到了“不允许直接脚本访问”Eureka!!!经过几次修改。我不得不在插件文件中添加“pi.”,以便我的插件管理器能够识别它。因此pi.get_pinterest_image.php。我还将您的正则表达式编辑为“/src=”([^“]+)”/”,我从这个Wordpress pinterest小部件中偷走了它:。非常感谢!!