0

このページhttp://www.effectivewebsolutions.biz/video-spokesmodel.htmlに URL を入力すると、fopen 関数を介して URL が開き、デモンストレーション用にビデオ スポーク モデルが Web サイトに配置されます。スクリプトは次のとおりです。

<?php
$handle = fopen($_POST["url"], "r");

while($data = fread($handle, 1000000)){
    $contents .= $data;
}

fclose($handle);

echo "<base href=\"{$_POST['url']}\">";
echo "\n\n";
echo "<!-- Begin inserted page -->";
echo "\n";
echo $contents;
echo "\n";
echo "<!-- End inserted page -->";
echo "\n\n";
echo '<script type="text/javascript" src="http://www.internet-spokesmodels.com/scripts/swfobject.js"></script>';
echo '<style type="text/css" media="screen">object { outline:none; } </style>';
echo "\n";
echo '<script type="text/javascript" src="http://www.internet-spokesmodels.com/actors/script/SabrinaEXAMPLESredshirt_350x500.js"></script>';
?> 

ただし、Safari では Web サイトのテキスト バージョンのみが開きます (CSS や画像はありません)。この場合、なぜブラウザが違いを生むのか意味がありません。

何か案は?

4

2 に答える 2

0

おそらく、ページが有効な HTML をレンダリングしないためです。で試してみたところhttp://www.google.ca、次のようになりました。

<base href="http://google.ca">

<!-- Begin inserted page -->
<!doctype html><html><head><meta http-equiv="content-type" ...

ページの最初に DOCTYPE を配置し、その後<html>に HTML コンテンツを含むタグを配置する必要があります。タグはタグ<base>内にある必要があります<head>

無効な HTML を誤って表示することで Safari を責めることはできません。

于 2011-02-11T16:32:34.353 に答える
0

ブラウザーはサーバー側のコードとは関係がないため、返される HTML コードはブラウザー間で同一である必要があります。HTML の有効性を確認します。また、提案されたミーガーとして入力をサニタイズします。

于 2011-02-11T16:37:05.467 に答える