OVH Cloud OVH Cloud

[PHP] Mes aventures avec print !

8 réponses
Avatar
Denis Beauregard
Bonjour,

Je viens d'affilier mon site à un vendeur d'annonces. J'ai
donc décidé de changer mon générateur de bannières.

J'avais quelque chose comme:

<?php
$heure = time ();
$pub = $heure % 5;
switch($pub){
case 0:
print //mon URL et le titre du lien
break;
etc.
}
?>

Je me suis dit qu'il me suffisait de remplacer le print par un print
avec la bannière d'affilié.

J'avais des print ' tout le code apparaissait sur une seule ligne,
donc le générateur en javascript ne marchait plus.

J'ai ajouté des \n à la fin des lignes. Marche pas.

J'ai remplacé les print ' par des print " et ajouté des \ devant les "
du code existant. Marche pas.

J'ai alors mis un
require ("annonceur.php");

et recopié le code dans un fichier séparé.

J'aimerais savoir si c'est normal que lorsque l'on ajoute du code
externe (javascript dans ce cas-ci), on doive passer par le require
ou le include au lieu du print qui me semble plus direct mais qui n'a
pas voulu afficher mes sauts de ligne (en examinant le code produit
avec mon navigateur, que ce soit print ' ou print ", je voyais des
\n et non des sauts de ligne).


Denis

8 réponses

Avatar
Olivier Miakinen

[...]

J'avais quelque chose comme:

print //mon URL et le titre du lien

[...]

J'avais des print ' tout le code apparaissait sur une seule ligne,
donc le générateur en javascript ne marchait plus.

J'ai ajouté des n à la fin des lignes. Marche pas.

J'ai remplacé les print ' par des print " et ajouté des devant les "
du code existant. Marche pas.

[...]


C'est pas pour dire, mais tout ça me semble assez peu clair...

Tes « print » ils servent à générer quoi :
- du contenu textuel, comme le contenu d'un paragraphe HTML ;
- la valeur d'un attribut HTML ;
- un programme JavaScript ;
- une valeur (chaîne de caractères) JavaScript ;
- autre ?

Tant qu'on n'en saura pas plus, il sera difficile voire impossible de te
répondre. Si tu ne veux pas dévoiler le vrai code pour ne pas faire de
pub à tel ou tel annonceur, remplace les vraies URL par des URL bidons,
mais donne-nous un vrai bout de code !

Avatar
Denis Beauregard
Le 18 Jul 2005 20:57:36 GMT, Olivier Miakinen <om+
écrivait dans fr.comp.lang.php:


[...]

J'avais quelque chose comme:

print //mon URL et le titre du lien

[...]

J'avais des print ' tout le code apparaissait sur une seule ligne,
donc le générateur en javascript ne marchait plus.

J'ai ajouté des n à la fin des lignes. Marche pas.

J'ai remplacé les print ' par des print " et ajouté des devant les "
du code existant. Marche pas.

[...]


C'est pas pour dire, mais tout ça me semble assez peu clair...

Tes « print » ils servent à générer quoi :
- du contenu textuel, comme le contenu d'un paragraphe HTML ;
- la valeur d'un attribut HTML ;
- un programme JavaScript ;
- une valeur (chaîne de caractères) JavaScript ;
- autre ?


Le code du fournisseur de bannière (ne doit pas être modifié):


<script type="text/javascript"><!--
xxx_ad_client = "pub-yyy";
xxx_ad_channel ="";
//--></script>
<script type="text/javascript"
src="http://ad.zzz.com/show_pub.js">
</script>


J'ai essayé:

print '<script type="text/javascript"><!--n';
print "<script type="text/javascript"><!--n";

et finalement:

require ("aaa.php");

sur php.net, il me semble qu'on montre un exemple avec "...n...".


Denis


Avatar
Olivier Miakinen

Le code du fournisseur de bannière (ne doit pas être modifié):

<script type="text/javascript"><!--
xxx_ad_client = "pub-yyy";
xxx_ad_channel ="";
//--></script>
<script type="text/javascript"
src="http://ad.zzz.com/show_pub.js">
</script>

J'ai essayé:

print '<script type="text/javascript"><!--n';


C'est normal que ça ne fonctionne pas.

print "<script type="text/javascript"><!--n";


Ça, en revanche, cela devrait marcher. Je ne vois pas pourquoi ce ne
serait pas le cas. De même que :

print '<script type="text/javascript"><!--'."n";


Tu peux aussi essayer :

print <<<END
<script type="text/javascript"><!--
xxx_ad_client = "pub-yyy";
xxx_ad_channel ="";
//--></script>
<script type="text/javascript"
src="http://ad.zzz.com/show_pub.js">
</script>
END;

Avatar
cyberwise
Denis Beauregard wrote:

<script type="text/javascript"><!--
xxx_ad_client = "pub-yyy";
xxx_ad_channel ="";
//--></script>
<script type="text/javascript"
src="http://ad.zzz.com/show_pub.js">
</script>



teste:

echo ("
<script type="text/javascript"><!--n
xxx_ad_client = "pub-yyy";n
xxx_ad_channel ="";n
//--></script>n
<script type="text/javascript"n
src="http://ad.zzz.com/show_pub.js">n
</script>n");

Avatar
Olivier Miakinen

teste:

echo ("
<script type="text/javascript"><!--n
xxx_ad_client = "pub-yyy";n
xxx_ad_channel ="";n
//--></script>n
<script type="text/javascript"n
src="http://ad.zzz.com/show_pub.js">n
</script>n");


Ceinture et bretelles ?

Ce code devrait en principe insérer *deux* sauts de ligne à chaque ligne.

Au fait, Denis, tu ne nous as pas dit ce que tu obtenais comme résultat
de chaque essai qui ne marchait pas.

Était-ce :
-- <script type="text/javascript"><!--nxxx_ad_client [...] ;
-- <script type="text/javascript"><!--xxx_ad_client [...] ;
-- <script type="text/javascript"><!--?xxx_ad_client [...] ;
-- autre ?

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.

Avatar
Denis Beauregard
Le 19 Jul 2005 13:36:12 GMT, Olivier Miakinen <om+
écrivait dans fr.comp.lang.php:

Au fait, Denis, tu ne nous as pas dit ce que tu obtenais comme résultat
de chaque essai qui ne marchait pas.


Deux résultats:

tout d'abord, tout le script sur la même ligne, quelque chose comme:

<script type="text/javascript"><!--nxxx_ad_client "pub-yyy";nxxx_ad_channel ="";n//--></script>n<script
type="text/javascript"nsrc="http://ad.zzz.com/show_pub.js">n</script>n");

puis, que des n sur 5 lignes dans le texte affiché (mais le script
avait beaucoup plus que 5 lignes). Quelque chose comme:

n
n
n


n
n




La solution du require fonctionne bien. L'avantage est que j'ai un
seul fichier à modifier au lieu de deux. J'ai des versions française
et anglaise pour mes bannières, mon site étant bilingue. Donc 2
fichiers à inclure selon la langue, mais le code de cette affiliation
est le même, peut importe la langue (et c'est génial ! non seulement,
cela détecte la langue de la page, mais si une page est bilingue, il y
a de la pub dans les deux langues !).

Ceci dit, je retiens pour la prochaine fois le 'texte original'."n".


Denis

Avatar
Olivier Miakinen

tout d'abord, tout le script sur la même ligne, quelque chose comme:

<script type="text/javascript"><!--nxxx_ad_client > "pub-yyy";nxxx_ad_channel ="";n//--></script>n<script
type="text/javascript"nsrc="http://ad.zzz.com/show_pub.js">n</script>n");


Tu es sûr que tu as fait la modif jusqu'au bout ? Genre : tu n'aurais
pas remplacé les " par des " à l'intérieur des chaînes, mais en
oubliant de remplacer les ' par des " autour ? Cela donnerait exactement
ce résultat.

Ceci dit, je retiens pour la prochaine fois le 'texte original'."n".


Et pas le :
<<<END
texte
original
sur
plusieurs
lignes
END;
?

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.

Avatar
Denis Beauregard
Le 19 Jul 2005 17:42:47 GMT, Olivier Miakinen <om+
écrivait dans fr.comp.lang.php:


tout d'abord, tout le script sur la même ligne, quelque chose comme:

<script type="text/javascript"><!--nxxx_ad_client >> "pub-yyy";nxxx_ad_channel ="";n//--></script>n<script
type="text/javascript"nsrc="http://ad.zzz.com/show_pub.js">n</script>n");


Tu es sûr que tu as fait la modif jusqu'au bout ? Genre : tu n'aurais
pas remplacé les " par des " à l'intérieur des chaînes, mais en
oubliant de remplacer les ' par des " autour ? Cela donnerait exactement
ce résultat.


Si j'avais oublié un ou plusieurs ", j'aurais eu une erreur de PHP.
Donc, ce n'était pas le problème. Et je ne pouvais pas oublié de '
pour une raison similaire (quand j'ai fait le 1er essai avec les ', il
y aurait une erreur de PHP).

Ceci dit, je retiens pour la prochaine fois le 'texte original'."n".


Et pas le :
<<<END
texte
original
sur
plusieurs
lignes
END;
?


On retient ce qu'on peut. C'est vrai que le <<< est plus rapide à
implanter, mais comme je connaissais déjà le ."n", j'ai plus de
chances de m'en rappeler... Je me croise les doigts car je n'ai pas
eu le réflexe de l'essayer hier.

Ceci dit, je viens de regarder ce que me rapportent ces bannières
après une journée. C'est à peine un peu plus que ce que me coûte la
location du serveur. Disons que je ferais mieux de me concentrer sur
le contenu de mon site pour aller chercher plus de visiteurs que sur
un problème réglé...


Denis