私たちのウェブサイトは数年前から稼働していて、何かが変わって本当に奇妙です。ホスティングと話をしようとしましたが、何も解決されません。
問題は、最初にインクルードされたファイルの最初のタグの前のすべてが<?php
、OBに入る直前に出力されることです。
例えば:
<?php
ob_start();
?>
<h1>Welcome</h1>
<?php
include('contentbox1.php');
include('contentbox2.php');
include('contentbox3.php');
?>
<b>Bye</b>
<?php
$content = ob_get_contents();
ob_end_clean();
echo("Included{".$content."}");
?>
出力されるのはこれです:(<h1>Welcome</h1>
バッファ内に出力された残りのコンテンツとは異なることに注意してください)
<h1>Welcome</h1>
Included{
<div id="contentbox1"></div>
<div id="contentbox2"></div>
<div id="contentbox3"></div>
<b>Bye</b>
}
正しい出力はどうあるべきか(そして私のローカルマシン上にある):
Included{
<h1>Welcome</h1>
<div id="contentbox1"></div>
<div id="contentbox2"></div>
<div id="contentbox3"></div>
<b>Bye</b>
}
それは私たちのサイトに大きな問題を引き起こしていて、私はその理由を理解できません。それは私のローカルマシンで完全に機能しますが、私たちが何年も一緒に使用してきたホスティングではありません。
解決策:
を再アップロードしているときtest.php
に、ウェブサイト上のコンテンツのボックスや他の多くのファイルがおかしくなり、破損している可能性があります。サイト全体を再アップロードすると(コードの変更は発生していませんが)、実行速度が遅いサイトは非常に高速になり、すべての問題が解消されました。私は他のホストでもファイルが破損しているので、将来奇妙なものがある場合はこれを覚えておいてください。