1

css ファイルにいくつかの php を追加していますが、php が実行されていないようです。むしろ、php コード全体が印刷されているだけです。

.large {
width: 175px; 
height: 175px;
position: absolute;
border-radius: 100%;
box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.85), 
0 0 7px 7px rgba(0, 0, 0, 0.25), 
inset 0 0 20px 2px rgba(0, 0, 0, 0.25);
background: url('http://www.tahara.es/images/LargeImage/<?php echo $row2[imageLarge]; ?>.jpg') no-repeat;
}

私は何か間違ったことをしていますか?それとも、CSS 内で PHP を実行するのはクレイジーですか?

4

4 に答える 4

5

デフォルトでは、ほとんどの Apache インストールは、実際の .php ファイル内の PHP コードのみを解釈します。PHP プロセッサは、Apache (または実行中の Web サーバー) を再構成しない限り、他のファイル タイプを処理しません。デフォルトでは、そのファイル タイプのデフォルトとしてブラウザにレンダリングされます。

ただし、PHP からは、あらゆるタイプのコンテンツを生成できます。PHP を初めて使用するほとんどの人は、PHP が生成するものについて考えるときに HTML を思い浮かべますが、それはほんの始まりにすぎません。

<?php header('Content-Type:text/css'); ?>
<? /* php code defining $row2 */ ?>
.large {
    width: 175px; 
    height: 175px;
    position: absolute;
    border-radius: 100%;
    box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.85), 
    0 0 7px 7px rgba(0, 0, 0, 0.25), 
    inset 0 0 20px 2px rgba(0, 0, 0, 0.25);
    background: url('http://www.tahara.es/images/LargeImage/<?php echo $row2[imageLarge]; ?>.jpg') no-repeat;
 }

この手法を使用すると、HTML、JavaScript、CSS、XML、JSON、およびその他の種類のコンテンツを生成できます。

このサーバー生成の CSS を Web ページに挿入すると、リンク タグは次のようになります。

<link rel="stylesheet" type="text/css" href="myDynamicCSS.php" />

拡張子は .css ではなく .php であり、最終製品としてブラウザに送信されるコンテンツは「text/css」であることに注意してください。

于 2013-04-15T01:17:55.203 に答える
2

はい、確かに CSS を PHP で解析して、動的に生成することができますこれを実現する最も簡単な方法は、ブラウザで PHP スクリプトを指定することです。拡張子が何であるかは関係ありません。応答がtext/cssであることを好むだけです。

あなたのHTMLで:

<link type='text/css' rel='stylesheet' href='/styles/default.php' />

あなたの上部に/styles/default.php

header('Content-type: text/css');

.cssPHP パーサーを介してすべてのファイルを実行するように、HTTP デーモン/サービスを構成することもできます。しかし、その場合、すべてのファイルをパーサーで実行する必要があります。ほとんどの場合、不要なパフォーマンス ヒットになります.css

ただし、通常の状況では、スタイルシートを定義して、すべてのページに対応できる柔軟性を持たせることをお勧めします。理想的には、スタイルシートの有効期限が「決して」切れず、クライアントがスタイルシートを複数回ダウンロードする必要が「決して」ありません。スタイルを動的に生成している場合、要点を見逃しているのではないかと思います。動的に生成されたルールは、通常、ページに直接埋め込む必要があります。

(もちろん、ルールには例外があります...)

于 2013-04-15T01:20:42.357 に答える
2

編集:回答を書き直しました。

1 つの条件で、CSS ファイルで PHP を実行できます。

サーバーは、PHP パイプラインを介して *.CSS ファイルのリクエストを送信します。

これは、通常は静的な CSS ファイルをすべて PHP で処理することになり、パフォーマンスが低下するため、通常は良い考えではありません。

より良いオプションは、*.css ファイルの名前を PHP に変更し、PHP ファイルを CSS ファイルであるかのようにリンクすることです。

于 2013-04-15T01:14:03.237 に答える
0

いいえ、おかしなことではありません。Web サーバーが PHP スクリプトとして実行することを認識できるように、css ファイルに.php拡張子 ( . .cssCSS は HTML や生のテキストではありません。これらの行は次のようになります。

<?php

header('Content-Type: text/css');

?>
于 2013-04-15T01:17:00.747 に答える