用于证明文件是否存在的函数

时间:2013-06-05 20:10:40

标签: php foreach

这是我的剧本:

$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。

任何人都可以帮我配置我的脚本吗?

1 个答案:

答案 0 :(得分:0)

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

表示你获取any_function的返回值并将其插入到字符串中,稍后将回显。

但是

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

已经回应了某些东西($ path),这显然会破坏你的输出。删除该回声线。在另一个功能中也一样。