2017-08-19 7 views
-2

私は現時点で問題があります。これは、PHPのimplode要素で必須の使用に関するものです。implodedでの使用方法PHP

現在のプロジェクトでは、スタイル付きファイルを$ _GETパラメータでアセンブルしています。だから私は複数の<link>タグを必要としませんが、1つだけです。ここで

例: https://stylesheet-helper.bucketfront.com/css?sheet=minify

あなたは今minify.phpファイルが含まれています。 style.phpファイルも含めるには、explode/implode要素を作成しました。それで新しいURLは次のようになります:https://stylesheet-helper.bucketfront.com/css?sheet=style|minify しかし、私は必要なElementをimplode要素に含める方法を知らないので、私は500 Serverエラーです。今

コード:

<!-- language: lang-php --> 
    <?php 
    header("Content-type: text/css"); 
    $sheet = $_GET["sheet"]; 
    $styles = explode("|", $sheet); 
    $value = implode("", $styles); 
    require ('assets/' . $value . '.php'); 
    ?> 

それは両方のファイルを出力するようにどのように入力implode("", $styles);要素に要素require ('assets/' . $value . '.php');を必要とすることができます。

これは、implode要素にHTMLタグが含まれている例です。私はこれも必要な要素で可能だと思います:

<!-- language: lang-php --> 
    <?php 
    header("Content-type: text/css"); 
    $sheet = $_GET["sheet"]; 
    $styles = explode("|", $sheet); 
    $value = "<span>" . implode("</span>&nbsp;<span>", $styles) . "</span>"; 
    echo $value; 
    // Output with URL /css?sheet=style|minify: <span>style</span>&nbsp;<span>minify</span> 
    ?> 

私はあなたが私を助けてくれることを願っています。

ありがとうございました。

追加:.htaccessファイルの

  • コード:bucketfrontサブドメインスタイルシートヘルパーの

    RewriteEngine on RewriteCond %{REQUEST_URI} !.php$ [NC] RewriteRule ^(.*)$ $1.php [QSA]

  • すべてのファイル:

.htaccess css.php /assets/minify.php /assets/style.php

+1

質問が不明です。なぜあなたはimplodeを使用していますか?あなたは爆発から得たスタイルをループし、それぞれに 'require'を使用する必要があります – bansi

+0

私は前に' span'タグで行ったように、必要な要素を含めることができると思いました。しかし、あなたの返事に感謝します。スタイルを爆発させるために、このようなことを意味しますか? https://www.w3schools.com/php/php_looping_for.asp –

+0

'... css?sheet = style | minify'リクエストがどこから生成されているのか分かりません。html(Webブラウザ)からのものであれば、1回のリクエストで2つのファイルを送信することはできません。両方のファイルを1つのファイルに連結し、返信を1つのファイルとして送信することができます。 – bansi

答えて

0

あなたは(HTTPプロトコルでの単一の要求のための1件の以上の回答を返送することはできません)1として、すべてのファイルを含める必要があります。コード内のコメントを追加しました

<?php 
header("Content-type: text/css"); 
$sheet = $_GET["sheet"]; 
$styles = explode("|", $sheet); 
// include each file. 
// If your styles are simple stylesheets (no php parsing required) 
// try using readfile instead of include 
foreach ($styles as $value){ 
    include ('assets/' . $value . '.php'); 
    // readfile method 
    // readfile ('assets/' . $value . '.php'); 

} 

追加参照:

<?php 
header("Content-type: text/css"); 
$sheet = $_GET["sheet"]; 
$styles = explode("|", $sheet); 
$output = $styles; 
foreach ($output as $value) { 
require ('assets/' . $value . '.php'); 
} 
?> 

bansiが言ったようにI'veがそれをループ:readfile

+0

ありがとう@バンジー。私はこのバージョンを使用します。 –

0

これは私が使用した最終的なコードです。出典:https://www.w3schools.com/php/php_looping_for.asp

+0

あなたのスタイルシートでphpコードを使用する予定がないならば、 'readfile'を使ってみてください。これは、PHPパーサのオーバーヘッドをファイル上で実行する必要がないので、はるかに効率的です。 'readfile( 'assets /'。$ value。 '.php'); ' – bansi

+0

ありがとう。いいえ、スタイルシートでPHPコードを使用していません。その唯一のCSSコード。インクルードの代わりにreadfileを使用します。ありがとう@バンジー。あなたは私の問題を解決しました。 :) –

関連する問題