我有以下代码,当我将代码粘贴到我的页面时,我得到一个白页,你们可以帮帮我吗?
<?php $strRendersettings = ($this->settings)? 'settings' : 'view'; ?><?php if (count($this->data)): ?>
<ul>
<?php
switch($_SERVER['HTTP_HOST'])
{
case ("www.domain.de"):
foreach ($this->data as $arrItem): ?>
<li class="new_doc_home"><a href=""; ?>" ><strong><?php echo $arrItem['text']['new_docs_titel']; ?>:</strong><br>
<p><?php echo $arrItem['text']['new_docs_Text']; ?></p></a>
</li>
<?php
break;
case ("www.domain.com"):
foreach ($this->data as $arrItem): ?>
<li class="new_doc_home"><a href=""; ?>" ><strong><?php echo $arrItem['text']['new_docs_titel']; ?>:</strong><br>
<p><?php echo $arrItem['text']['new_docs_Text']; ?></p></a>
</li>
<?php
break;
case ("www.domain.fr"):
foreach ($this->data as $arrItem): ?>
<li class="new_doc_home"><a href=""; ?>" ><strong><?php echo $arrItem['text']['new_docs_titel']; ?>:</strong><br>
<p><?php echo $arrItem['text']['new_docs_Text']; ?></p></a>
</li>
<?php
break;
}
?>
<?php endforeach; ?>
</ul>
<?php else: ?>
<?php endif; ?>
我需要代码,因为有一些不同的顶级域名。
谢谢:)
答案 0 :(得分:0)
看起来你在断开开关时打破了foreach循环。你应该在开关的每个外壳内结束foreach。
答案 1 :(得分:0)
问题是,你永远不会结束你的循环。
您应该使用foreach:
结束每个endforeach;
循环。现在你有3个循环,只有一个结束endforeach;
例如,此代码可以正常运行:
<?php
$array = [1=>2, 3=> 4];
$array2 = [5=>6,7=>8];
foreach ($array as $k => $v):
foreach ($array2 as $i => $j):
echo $i.' '.$j."<br />";
endforeach;
endforeach;
而以下情况不是:
<?php
$array = [1=>2, 3=> 4];
$array2 = [5=>6,7=>8];
foreach ($array as $k => $v):
foreach ($array2 as $i => $j):
echo $i.' '.$j."<br />";
//endforeach;
endforeach;
我建议您在PHP文件的开头添加:
<?php
error_reporting(E_ALL);
ini_set('display_errors','1');
显示所有警告和错误。当然,在制作时你应该禁用错误报告
答案 2 :(得分:0)
请参阅PHP错误日志以获取错误消息。当出现解析错误时,页面显示为空白,错误消息将显示在PHP错误日志中。
在您的代码中,<?php endforeach; ?>
似乎位于交换机之外。我想每个foreach
应该在endforeach
switch
之前拥有自己的break
。
答案 3 :(得分:0)
如果我错了,请纠正我,但是对于三种情况中的每种情况,你都在做同样的事情。我会改变我的代码:
<?php $strRendersettings = ($this->settings)? 'settings' : 'view'; ?>
<?php if (count($this->data)): ?>
<ul>
<?php
switch($_SERVER['HTTP_HOST'])
{
case "www.domain.de":
case "www.domain.com":
case "www.domain.fr":
foreach ($this->data as $arrItem): ?>
<li class="new_doc_home">
<a href="">
<strong>
<?php echo $arrItem['text']['new_docs_titel']; ?>:
</strong><br>
<p>
<?php echo $arrItem['text']['new_docs_Text']; ?>
</p>
</a>
</li>
<?php
endforeach;
break;
}?>
</ul>
答案 4 :(得分:0)
您需要在每个endforeach
语句之前添加break
语句。添加它,你的错误将得到解决。
希望这有帮助:)