我运行这个PHP代码时出现致命错误

时间:2013-08-24 09:16:49

标签: php

我想将这个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>

2 个答案:

答案 0 :(得分: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}

答案 1 :(得分:0)

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

if( $xml = simplexml_load_file(url))

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