使用PHP创建动态链接

时间:2015-08-10 13:34:05

标签: php mysql function

我有一大堆重复的链接创建代码(<a href)。我想创建一个函数来根据不同变量列表调用这段代码。

链接在表格内。我有大约15个链接几乎与下面的链接相同(唯一的区别是Make在这个例子中是'FORD'):

以下是重复的代码块:

<td>
  <a href="<?php echo PopulateModel($CategoryId, 1); ?>">
    <img src="images/brands/ford.gif" title="Click here if you have a Ford"> 
  </a>
  <center>
    <a href="<?php echo PopulateModel($CategoryId, 1); ?>" class="make">FORD</a>
  </center>
</td>

我想要创建的功能是接收一组不同型号的车辆,我想为每个车型创建一个链接。

我尝试在PHP中使用HEREDOC函数通过函数回显代码板,但似乎没有用。 echo语句中的PHP标记似乎给出了错误。

这是我的HEREDOC代码(不起作用):

function CreateBrandLink($brand_name){
echo <<<EOT
<td><a href="<?php echo PopulateModel($CategoryId, 1); ?>"><img src="images/brands/ford.gif" title="Click here if you have a Ford"></a>
<center><a href="<?php echo PopulateModel($CategoryId, 1); ?>" class="make">FORD</a></center></td>
</td>
EOT;
}

2 个答案:

答案 0 :(得分:1)

function CreateBrandLink($brand_name){
   $b = PopulateModel('a', 1);
   $r = <<<EOT
   <td>
    <a href="$b">
     <img src="images/brands/ford.gif" title="Click here if you have a Ford">
    </a>
    <center>
     <a href="$b" class="make">FORD</a>
    </center>
   </td>
EOT;
return $r;
}

答案 1 :(得分:0)

您不能将<?php块放在HEREDOC中。所以我们先解决这个问题......

function CreateBrandLink($brand_name){
    $href = PopulateModel($CategoryId, 1);
    echo <<<EOT
<td><a href="{$href}"><img src="images/brands/ford.gif" title="Click here if you have a Ford"></a>
<center><a href="{$href}" class="make">FORD</a></center></td>
</td>
EOT;
}

现在这仍然不起作用,因为当你调用$CategoryId时你引用了PopulateModel(),而实际上你的函数唯一的参数是$brand_name

我不太了解您的代码,知道如何纠正,但至少我们已经修复了语法问题。