我有以下代码,当我将代码粘贴到我的页面时,我得到一个白页面,你们能帮我吗?
PHP<?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; ?>
我需要代码,因为一些不同的顶级域。
谢谢:)
问题是你永远不会结束你的foreach循环。
应以endforeach;
结束每个foreach:
环。现在你有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');
显示所有警告和错误。当然,在生产环境中,您应该禁用错误报告
看起来您正在中断foreach循环,断开开关。你应该在开关的每一个盒子里结束每一个foreach。
查看PHP错误日志中的错误信息。当出现解析错误时,页面显示为空白,并且错误消息进入PHP错误日志。
在您的代码中,<?php endforeach; ?>
似乎在开关之外。我想在switch
的break
之前,每个foreach
都应该有自己的endforeach
。
如果我错了请纠正我,但是您对三种场景中的每一种都做了完全相同的事情。我将修改我的代码如下:
<?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>
需要在每个break
语句之前添加endforeach
语句。加上这个,你的错误就解决了。希望有帮助