-4

我想将此php连接到tpl。

但是当我尝试运行时它给了我致命的错误。

我在 php 中添加了 smarty 以在 tpl 文件中显示这些数据,但仍然有问题。

<?php
include('developer.php');
if( $xml = simplexml_load_file(url))
{
foreach($xml->campaign as $campaigns) 
{   
$camp_name = $campaignsl->name;
$camp_dec= $campaigns->description;
$camp_payout= $campaigns->payout;
$camp_url= $campaigns->url;
$smarty->assign( 'camp_name', $camp_name);
$smarty->assign( 'camp_dec', $camp_dec);
$smarty->assign( 'camp_payout', $camp_payout);
$smarty->assign( 'camp_url', $camp_url);
$smarty->display('link.tpl');
}
}
?>

这是 tpl 文件 (link.tpl)。

<table width="100%" class="widget-tbl">
<tr class="titles">
<td align="center">Name</td>
<td align="center">Description</td>
<td align="center">amount</td>
<td align="center">Link</td>
</tr>
<tbody id="tablelist">
{foreach item=item from=$campaigns}
<tr>
<td align="center">{$camp_name}</td>
<td align="center">{$camp_dec}</td>
<td align="center">{$camp_payout}</td>
<td align="center">{$camp_url}</td>
</tr>
{/foreach}    
</tbody>
4

2 回答 2

3

第一个问题是您$url在以下语句中的变量(也由@maxime-lorant 指出):

if( $xml = simplexml_load_file($url)) // Use $url not url

其次,您正在做$camp_name = $campaignsl->name;并且$campaignsl未定义!

第三,您没有分配$campaign给 smarty 模板,而是在其上执行循环。

尝试以下操作:

if( $xml = simplexml_load_file($url))
{
    $smarty->assign('campaigns', $xml->campaign);
    $smarty->display('link.tpl');
}

然后在您的模板中:

{foreach item=item from=$campaigns}
    <tr>
        <td align="center">{$item->name}</td>
        <td align="center">{$item->description}</td>
        <td align="center">{$item->payout}</td>
        <td align="center">{$item->url}</td>
    </tr>
{/foreach}
于 2013-08-24T09:26:26.627 回答
0

$您在解析 XML 文件时忘记了 a :

if( $xml = simplexml_load_file(url))

将此替换为if( $xml = simplexml_load_file($url))。您还可以检查此变量是否已初始化,因为您位于文件的开头...

于 2013-08-24T09:19:04.857 回答