2012-02-14 71 views
0

如果用户将条目保存在后端视图中,我编写了一个脚本,该脚本将PDF文件导出为PDF格式。解析PDF输出模板中的contao/typolight代码

我的问题是,在有这样的代码,如果我打印出来即可变$entry['data']['link_img']['ref']模板:

a:3:{i:0;s:2:"14";i:1;s:2:"15";i:2;s:2:"13";}(序列化阵列,它不匹配的foreach规格)

PHP代码如下所示:

<?php foreach ($entry['data']['link_img']['ref'] as $link_img):?> 
    <? print($link_img); ?> 
     <a href="werke-detail/items/<?php echo $link_img['alias']; ?>.html"> 
    <?php echo $link_img['title']; ?> </a><br /> 
<?php endforeach; ?> 

时contao分析模板,这个作品,如果我得到的数据,事实并非如此。有没有我可以使用的contao函数来解码这个,让我的foreach工作?

UPDATE

最大的问题是:在哪里Contao做它的神奇的模板引擎,我怎么可以这样做?

谢谢

+0

这看起来像序列化的数据。 'unserialize()'应该是票据。 – 2012-02-14 11:06:51

+0

你舒服吗?因为没有像这样的字段:'alias'就可以了.... – helle 2012-02-14 11:07:35

+0

啊,我明白了!然后,Contao可能会做一些额外的魔术。不知道该怎么做,对不起。 – 2012-02-14 11:11:34

回答

0

延长Pekka给出的评论。 Contao将某些数据类型存储为序列化的PHP数组。

通常在后端内存储的任何领域如下:

$GLOBALS['TL_DCA']['tl_dca']['fields']['yourfield']['eval']['multiple'] = true; 

将存储的数据作为序列化,一些内置类,如用户将反序列化这样的数据,也就是说,如果你正在使用$此 - >用户。

此外,请注意,所有序列化数组都存储在数据库中的BLOB类型中,因此给定模块的database.sql可以为您提供关于是否会以该格式存在的线索。

serialize/unserialize函数存储在system/functions.php中,其中包含一些其他有用的PHP函数。

+0

因此,当我使用User-unserialize方法时,我将获得所有字段(标题,别名)?你能举一些例子吗? – helle 2012-02-14 14:24:31

+0

上面指定的数组将给出数组(14,15,13),它通过查看名称是某种形式的引用。你是否在模板中的图像标题和别名之后? – 2012-02-14 14:32:07

+0

是的,我知道。我也知道'serialize'和'unserialies'的作用。问题是,正如你可以在评论中看到的那样:contao在哪里做到了魔术,我该怎么做呢? – helle 2012-02-14 14:34:21