pb taille chaine ???

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb taille chaine ???

par pierrot » 16 juin 2005, 12:01

salut, désolé j'avais zappé mon post... Effectivement j'ai resolu mon pb avec addslashes...En meme tps, j'suis content de voir que j'ai fais de moi meme les conseils donnés par les "pros" que vous etes.... En tout cas merci à tous :pouce:

par naholyr » 14 juin 2005, 20:47

<?
$fichier="E:\\stage\\test\\www\\test\\newtab42.txt";
$handle=fopen($fichier, "r+");
$printablePHP=fread($handle,filesize($fichier));
?>

<script type='text/javascript'>;
var printableJS='<? echo $printablePHP; ?>';
document.writeln("le popup affichera : " + printableJS);

function impression(texte){
var pop=window.open("","","");
pop.document.open();
pop.document.writeln(texte);
pop.document.writeln("<script type='text/javascript'>");
pop.document.writeln("window.print();");
pop.document.writeln("<\/script>");
pop.document.close();}

</script>

<br /><INPUT TYPE="image" src="printer.ico" value="Print" onclick="impression(printableJS);">
1. As-tu vérifié qu'il n'y avait pas d'apostrophes dans ton fichier texte ? Parce que tu ne fais pas d'addslashes...
2. Tu ne fermes pas ton fichier, ce n'est pas grave, mais ça peut le devenir.

Je ferais ceci (addslashes, et découpe en morceaux par ligne)
<?
$fichier="E:\\stage\\test\\www\\test\\newtab42.txt";
$handle=fopen($fichier, "r+");
$printablePHP=fread($handle,filesize($fichier));
fclose($handle);
$len = strlen($printablePHP); // longueur de la chaine
$lenPerLine = 200; // nb de caractères par ligne
$nbCuts = ceil($len/$lenPerLine); // nombre de segments
?>

<script type='text/javascript'>;
var printableJS='';
<? for ($i=0; $i<$nbCuts; $i++): ?>
printableJS += '<?=addslashes(substr($printablePHP,$i*$lenPerLine,$lenPerLine))?>';
<? endfor ?>
document.writeln("le popup affichera : " + printableJS);

function impression(texte){
var pop=window.open("","","");
pop.document.open();
pop.document.writeln(texte);
pop.document.writeln("<script type='text/javascript'>");
pop.document.writeln("window.print();");
pop.document.writeln("<\/script>");
pop.document.close();}

</script>

<br /><INPUT TYPE="image" src="printer.ico" value="Print" onclick="impression(printableJS);">
?

Edit: il n'y a pas de longueur maximale d'une chaine en javascript, cela dépend de la RAM du client. J'ai déjà utilisé sans trop de problème des chaines de plusieurs centaines de kilo-octets. À mon avis tu as plutot un problème d'apostrophe... Tu devrais exécuter ta page avec firefox, qui te donnera beaucoup plus de détails dans la console javascript.

par daoud » 14 juin 2005, 19:27

si je poste en Invité, je n'arriverai jamais à rejoindre Cyrano :D

daoud

Re: pb taille chaine ???

par Invité » 14 juin 2005, 19:19


Pour info, ce fichier texte ne fait qu'une seule ligne, cela peut-il venir de là?
Heu, j'ai fait des tests chez moi et ça marche. Ne voulais-tu pas dire "ne fait pas" ?
Peux-tu donner le texte qui fait échouer le script ?

a+
daoud

par pierrot » 14 juin 2005, 14:29

non, mais je veux pas savoir la taille d'une chaine, je veux savoir en javascript, qd on declare une chaine, combien de caractere celle-ci peut comporter? parce que dans mon exemple, j'ai une variable qui recoit une chaine, mais apparement JS refuse de me l'afficher si celle-ci dépasse 6144 caracteres. voilà...mais bon, merci qd meme

par Cyrano » 14 juin 2005, 12:44

Code : Tout sélectionner

varTexte.length

par pierrot » 14 juin 2005, 12:12

personne connait la taille max d'une string en Javascript, j'arrive pas à trouver...

par pierrot » 14 juin 2005, 11:51

bon alors, j'ai fait mes ptits tests, pour que le texte s'affiche, il faut qu'il fasse au max 6144 caracteres (6*1024) .... Ca m'arrange vraiment pas moi ca... Personne connait une bidouille pour declarer une longue chaine (genre long_str ou qqchose comme ca...)
Merci

pb taille chaine ???

par pierrot » 14 juin 2005, 11:22

re-bonjour!!! c encore moi, desolé (en meme tps, ya pas foule sur ce forum aujourd'hui...)
J'ai un pb tres bizarre, et tres pénible :
voici mon script (certains le connaissent déjà :D )
<? 
$fichier="E:\\stage\\test\\www\\test\\newtab42.txt";
$handle=fopen($fichier, "r+");
$printablePHP=fread($handle,filesize($fichier));	
?>

<script type='text/javascript'>; 
var printableJS='<? echo $printablePHP; ?>';
document.writeln("le popup affichera : " + printableJS);

function impression(texte){
var pop=window.open("","",""); 
pop.document.open(); 
pop.document.writeln(texte); 
pop.document.writeln("<script type='text/javascript'>"); 
pop.document.writeln("window.print();");
pop.document.writeln("<\/script>"); 
pop.document.close();}

</script> 

<br /><INPUT TYPE="image" src="printer.ico" value="Print" onclick="impression(printableJS);">
Donc ce script est sensé récupérer le contenu d'un fichier texte, proposer un bouton pour ouvrir un popup contenant ce contenu et ouvrir la boite de dialogue d'impression...

Pour tester, je fais afficher dans ma page appelante le contenu du futur popup avec la ligne
document.writeln("le popup affichera : " + printableJS);
Maintenant, le PB : :shock:
si le contenu de mon fichier texte est assez court, pas de pb, ca me l'affiche bien, et ca m'ouvre bien un popup avec ce texte dedans.
Seulement moi, mon fichier.txt il fait 42000 car... et ben là il veut plus rien m'afficher et j'ai le ptit panneau "attention
erreur sur la page" en bas à gauche...

Pour info, ce fichier texte ne fait qu'une seule ligne, cela peut-il venir de là?

Merci d'avance pour toutes vos idées...