0

这是我的脚本:

$imagesPerLine = array(1=>2, 2=>3); $default = 4;
$lines = array(1, 2, 3);
$html="";
foreach ($lines as $line) {
if (!isset($imagesPerLine[$line])) {
  $imagesPerLine[$line] = $default;
}
$html.= "<tr>\n";
for ($i = 1; $i <= $imagesPerLine[$line]; $i++) {
  $html.=sprintf("<td>%s</td>\n",any_function());
}
$html.="</tr>\n";
}
echo $html;

此刻它看起来应该在这里:

<tr>
  <td></td>
  <td></td>
</tr>
<tr>
  <td></td>
  <td></td>
  <td></td>
</tr>
<tr>
  <td></td>
  <td></td>
  <td></td>
  <td></td>
</tr>

现在,在每个“td-tag”中,我希望我的函数any_function()证明三个文件之一是否存在。

我做了什么:

function any_function($transactionId)
{
$states = array('schwarz', 'rot', 'blau');

$path = '';

foreach ($states as $state) {
  $testPath = sprintf('transactions/Ordner%s/%s.png', $transactionId, $state);

    if (file_exists($testPath)) {
      $path = $testPath;
      echo $path;
      break;
    }
}
return $path;
}

$transactionIds = range(1,9);

foreach ($transactionIds as $transactionId) :

if (($transactionId % $imagesPerLine) == 1)

$path = any_function($transactionId);

$imageHtml = ('' !== $path)
    ? '<img src="' . $path . '" />'
    : '<img name="nummer.' . $transactionId . '" src="inventory_images/8.jpg" onclick="changecolor(this)" />' ;

echo $imageHtml;


endforeach;

但现在它没有意义,所以这就是我问你的原因。

重要提示:$transactionId每次显示时都应为 +1。

谁能帮我配置我的脚本?

4

1 回答 1

0
$html.=sprintf("<td>%s</td>\n",any_function());

意味着您获取 any_function 的返回值并将其插入到您的字符串中,稍后将被回显。

if (file_exists($testPath)) {
      $path = $testPath;
      echo $path;
      break;
    }

已经回显了某些东西($path),这显然会破坏您的输出。删除该回声线。其他功能相同。

于 2013-06-05T20:24:29.707 回答