0

私はウェブサイトwww.verbum.xtrweb.com/verbum.phpを構築しています

私はphpのrequest関数を使用して、次のサイトからスペイン語の単語の定義を取得します:www.rae.es。私が取得する出力はにありますが、残念ながら、出力する要素のスタイルを変更することはできません。たとえば、「hola」という単語を検索すると、「hola」の意味がわかりますが、www.rae.esのスタイルシートが使用されます。私が欲しいのは、この出力に自分のスタイル(色、フォント、フォントサイズなど)を適用することです。

ここに画像の説明を入力してください 私は今$importantと呼ばれるものがあります!しかし、私が以前にテストした方法によれば、それは機能しませんでした。

私は急いでstackoverflowコミュニティの魔法の援助を呼び起こします。

4

1 に答える 1

1

変更するコンテンツはiframeにあります。スタイルシートをiframeダイレクトに挿入することをお勧めしますが、残念ながら、必要なコンテンツは別のドメインにあります。クロスドメインセキュリティポリシーにより、iframeのコンテンツを直接変更することはできません。

これを解決するには2つの方法があります。PHPアプリケーションを使用して必要なコンテンツを取得し、それをフィルタリングして、好きなように変更することができます。これはiframeに置き換わるものであり、代わりに必要なコンテンツをページに表示するだけです。もう1つのオプションは、コンテンツを取得するが、コンテンツをまったく変更しない、より単純なPHPアプリケーションを使用することです。次に、iframeをこのPHPアプリにポイントすると、現在と同じように表示されますが、同じドメインからのものになります。次に、Javascriptを使用してスタイルシートを挿入し、任意の外観にすることができます。

大切なもの!" 私が言及した2番目の方法を使用する場合は、CSSオーバーライドが必要になる可能性がありますが、それが問題の根本的な原因ではありません。重要な使い方についてもっと知りたい場合は、この記事をお勧めします。

以下に、私が説明した最初の方法の例を実装しました。これにより、要求されたページがダウンロードされ、スタイルのカスタムセットが挿入されます。

<?php
$url = 'http://lema.rae.es/drae/srv/search?id=IwxflJmT9DXX2DMkYs8Z';

$css = <<<EOT
<style type="text/css">
body
{
    background: #eeeeee;
}
.a
{
    color: green;
}
.f
{
    font-size: 200%;
}
.o
{
    font-size: 80%;
}
img
{
    opacity: .5;
}
img:hover
{
    opacity: 1;
}
</style>
EOT;

$data = file_get_contents($url);
$data = str_replace('</head>', $css.'</head>', $data);
echo $data;

?>
于 2012-11-15T03:31:54.383 に答える