1 Dernière modification par Nardo26 (09-05-2011 13:58:19)

Sujet : [Résolu] PHP : appel avec passage de paramètre

Bonjour,

J'ai un petit problème (de débutant)
Actuellement pour inclure mes feuilles de style j'utilise cette syntaxe :

<link rel="stylesheet" media="screen" type="text/css" href="/style/style.css?<?php echo filemtime($_SERVER['DOCUMENT_ROOT'].'/style/style.css');?>">
<link rel="stylesheet" media="screen" type="text/css" href="/comment/comment.css?<?php echo filemtime($_SERVER['DOCUMENT_ROOT'].'/comment/comment.css');?>">
...
<link rel="stylesheet" media="screen" type="text/css" href="/syntaxhighlighter/styles/shCore.css?<?php echo filemtime($_SERVER['DOCUMENT_ROOT'].'/syntaxhighlighter/styles/shCore.css');?>">

Afin de simplifier la chose j'ai créé un fichier test.php qui fait ceci:

<?php
function isValid($file) { return substr($file, -4) == '.css'; }
 
if (!empty($_GET['files']))
{
  $css_list=addslashes($_GET['files']);
  $css_files = explode('|', $css_list);
  foreach($css_files as $css)
  {
    if(isValid($css))
    {
     $css=$_SERVER['DOCUMENT_ROOT'].$css;
     echo '<link href="'.$css.'?'.filemtime($css).'" rel="stylesheet" type="text/css" media="screen, handheld, tv, projection" />';
    }
  }
}
?>

Et le passage de paramètre se ferait ainsi:

  test.php?files=/style/style.css|/comment/comment.css|/syntaxhighlighter/styles /shCore.css 

Mon problème c'est que je ne sais pas comment exécuter cette fonction dans ma page html.

Naïvement, j'ai essayé de faire un include, dans le style:

<?php include("/test.php?files=/style/style.css|/comment/comment.css|/syntaxhighlighter/styles/shCore.css"); ?>

mais cela ne fonctionne pas... Peut être avec du Javascript ?

Quelqu'un peut m'aider ? Merci ! smile

Re: [Résolu] PHP : appel avec passage de paramètre

bonjour,
pourquoi se compliquer la vie comme ca?
tu ne pourras pas faire un include php dans du html, sauf si le html est déclaré comme extension php, si je ne me trompe pas.

donc ta page doit être en page.php
tu mets ton code html et la tu mets un include php entre <?php........?>

si tu veux vraiment faire apparaitre .html , utilise l'url rewrite dans un .htaccess

3 Dernière modification par Nardo26 (09-05-2011 10:22:06)

Re: [Résolu] PHP : appel avec passage de paramètre

Bonjour infobarquee,

En fait c'est dans ma page index.php que je souhaiterai avoir ceci :

<link rel="stylesheet" media="screen" type="text/css" href="/style/style.css?<?php echo filemtime($_SERVER['DOCUMENT_ROOT'].'/style/style.css');?>">
<link rel="stylesheet" media="screen" type="text/css" href="/comment/comment.css?<?php echo filemtime($_SERVER['DOCUMENT_ROOT'].'/comment/comment.css');?>">

donc le problème, c'est comment faire l'appel à mon fichier test.php dans le fichier index.php...

si je fait ceci:

<?php
    include('/cache/test.php?files=/comment/comment.css');
?>

Je me fais jeter... sad

4

Re: [Résolu] PHP : appel avec passage de paramètre

Très bizarre façon de faire, je croyais en lisant le code au début que tu cherchais à faire un cache naturel de tes scripts CSS, j'ai du mal comprendre, ton code marche quand appelé de l'extérieur (pas d'include, mais un lien avec un paramètre files).

Sinon si tu veux vraiment tester tu peux tjrs essayer de déclarer ton $_GET avant:

<?php
$_GET['files'] = 'yo.css|cool.css';
require_once './cache/test.php';
?>
lesCigales.ORG sysadm1n
L'hébergeur qui sent bon la lavande - Un control panel qu'il est chouette - Viendez nous parler!
"All that is necessary for evil to triumph is for good men to do nothing."

5 Dernière modification par Nardo26 (25-11-2012 13:29:53)

Re: [Résolu] PHP : appel avec passage de paramètre

Bonjour Toad,

Je me suis peut être mal exprimé :

En fait au départ, mon idée était de concaténer les feuilles de styles en une seule (dans le style Yahoo combo).
Mais j'abandonne cette idée car vu la taille de mes feuilles de styles c'est peut-être l’équivalent du bazooka pour tuer un moustique... wink

Par contre, ce que je peux faire, c'est jouer sur le cache :
Je souhaite que les feuilles de style soient de préférences prisent dans le cache (si elles existent bien-sûr) et de ne déclencher des requêtes de chargement uniquement que lorsque celles-ci sont modifiées (d'où l'ajout du timestamp pour chaque css)

Merci pour code: je ne savais pas qu'on pouvait modifier "à la main" le tableau $_GET[]...
En faisant comme cela, cela fonctionne:
cf. le source de  http://nardo26.lescigales.org/teinte-sa … te-26.html