これは私たちのウェブサイトを壊している非常に独特な問題です。Google Chromeには、誤って次のように見える単一の事前終了タグがあります:の代わりに/pre>。ソースコードの288行目くらいで見ることができます。
このWebサイトは、コードを変更せずに1年間稼働しており、最近、未知の力によって破壊されました(常にそうではありませんか?)が、GoogleChromeブラウザーでのみです。ウェブサイトは当時の最新バージョンのChromeで徹底的にテストされ、膨らみましたが、現在のGoogle Chromeだけでなく、過去のGoogle Chromeバージョンでもウェブサイトが壊れています(Chromeのバグはほとんどありません)。このページはサーバー上でPHPv5.3.8によって解析されており、特定のマークアップは単純でロジックのないコードから取得されます。
$markup = '';
foreach($albums AS $album) {
foreach ($album->videos AS $video) {
$markup .= '
<pre class="video '.$video->id.'">'.$video->url.'</pre>';
}
}
return $markup;
返される前に$markupをエコーし、$ markupを返す前にスクリプトを終了すると、Chromeでは、最後の行(288行目と同じマークアップ)に不正な形式の事前終了タグが表示されます。
<pre class="video Woman_v_Workout-FDNY_Training">http://player.vimeo.com/video/41377883</pre>
<pre class="video 30_Second_Fitness_Intro-2812">http://player.vimeo.com/video/36457857</pre>
<pre class="video Off_the_Beaten_Palate-FoodTravel_Show">http://player.vimeo.com/video/13491373</pre>
<pre class="video Make_Up_For_Ever-Blush_Product_Demo">http://player.vimeo.com/video/16980727</pre>
<pre class="video Karlssons_Vodka">http://player.vimeo.com/video/34921497</pre>
<pre class="video Sage_Spoonfuls">http://player.vimeo.com/video/25146823</pre>
<pre class="video iPhone_App_Commercial">http://player.vimeo.com/video/17769191</pre>
<pre class="video A_Taste_of_North_Vietnam">http://player.vimeo.com/video/44951293</pre>
<pre class="video Aid_for_AIDS_Commercial">http://player.vimeo.com/video/23805118</pre>
<pre class="video YPO-WPO_NE_Regional_Conference-31212">http://player.vimeo.com/video/38386105</pre>
<pre class="video LonelyGirl48">http://player.vimeo.com/video/13659996</pre>
<pre class="video Malibu_Rum-Stickies">http://player.vimeo.com/video/16980262/pre>
ただし、行をエコーすると、問題のある行が期待どおりに出力されます。
ウェブサイトはここにあります:http ://www.oneglassproductions.com すべてのアイデアに感謝します。同じコードベースが他のサーバーで適切に機能するため、本番サイトでそれをいじくり回します。PHP構成?
編集:マーティンのおかげで、プレクロージングタグの直前にスペースを追加すると、クロージングタグが正しく印刷され、スペースなしでコードを元に戻した今でも、クロージングタグは正しく印刷されています(コードは問題を見たとき)。それでも何が起こっているのか知りたいです。