ob_start ob_flush etc..

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 : ob_start ob_flush etc..

Re: ob_start ob_flush etc..

par reg35 » 28 févr. 2017, 08:38

Après quelques recherches complémentaire, en augmentant la taille du str_pad à une valeur hors norme ça fonctionne.

Code : Tout sélectionner

ob_start(); echo 'blabla 1'; echo str_pad('',9999999999); ob_flush(); flush(); sleep(5); echo 'blabla 2'; ob_end_flush();
Mais forcément ça ne me plait pas donc j cherche toujours pourquoi le pc, navigateur ou autre influe la dessus.

Help !!!!!!! SoS !!! Déprime :( :( :(

Est ce qu'un admin peux déplacer ce post en section php avancé?

Merci

Re: ob_start ob_flush etc..

par JayTricks » 26 févr. 2017, 12:50

Je suis désolé je ne peux pas vraiment t'aider je suis tellement loin en terme de compétences, mais je trouverai ça bizarre que ça vienne de l'OS, en revanche du navigateur je dis pas non bien que se soit les mêmes y a t'il des plugins supplémentaire chez l'un ou l'autre ?

Le php ce n'est pas comme le css ou il pourrait y avoir des ecarts entre navigateur, langage serveur donc normalement il réagit de la même façon partout, je n'affirme rien c'est n'est que supposition.

Re: ob_start ob_flush etc..

par reg35 » 26 févr. 2017, 10:12

J'ai oublié de préciser que je suis sur win7 des 2 cotés.
Mais au taf y'a pas toute les mises à jour

Re: ob_start ob_flush etc..

par reg35 » 26 févr. 2017, 10:11

Après avoir fait des tests complémentaire cette nuit au taf, je conclus que ça ne viens pas du navigateur non plus. C'est un truc dans win7 du coup je pense.

Explication:
au taf ça fonctionne sur Firefox et IE
at home, ça ne fonctionne pas ni sur l'un ni sur l'autre

quel bordel.... j'ai besoin d'aide la, trop pointu pour moi

Re: ob_start ob_flush etc..

par reg35 » 25 févr. 2017, 15:29

Oui sur mon pc de travail blabla1 apparait et ensuite blabla2 apparait 5 secondes après.
Sur le mien tout apparait en même temps au bout de 5 secondes

Re: ob_start ob_flush etc..

par JayTricks » 25 févr. 2017, 14:59

Okay je vois et tu dis que sur ton pc du travail, blablabla 1 apparait tout seul sans le blablabla 2 ?

Re: ob_start ob_flush etc..

par reg35 » 25 févr. 2017, 14:57

oui, en fait pour le voir à l'oeil il faut mettre un sleep entre les éléments

essaye ça :

Code : Tout sélectionner

ob_start(); echo 'blabla 1'; echo str_pad('',8000); ob_flush(); flush(); sleep(5); echo 'blabla 2'; ob_end_flush();

Re: ob_start ob_flush etc..

par JayTricks » 25 févr. 2017, 14:43

Donc là tu souhaites afficher seulement blabla 1 pour commencer ?

J'ai fais le test et de mon côté cela m'affiche blabla 1 blabla 2

Re: ob_start ob_flush etc..

par reg35 » 25 févr. 2017, 14:40

En fait, la fonction sert à afficher certains éléments de la page avant qu'elle ne soit charger complétement.
le flush libère l'affichage et ensuite la page continue de se charger

Re: ob_start ob_flush etc..

par JayTricks » 25 févr. 2017, 14:31

Bonjour,

Tu cherches à faire quoi avec ce code ?
De mon côté j'utilise ces fonctionnalités pour faire un genre de templating.

Je commence par faire une condition qui défini un $_GET du genre
if(isset($_GET['p'])){
    $p = $_GET['p'];
} else {
    $p = 'accueil';
}
Ensuite en fonction de ce qui est appelé j'envoie la page correspondante :
ob_start();
if($p === 'accueil'){
    require '../pages/accueil.php';
} elseif ($p === 'article'){
    require '../pages/article.php';
}
$content = ob_get_clean();
require '../pages/templates/layout.php';
Etant donné que je ne sais pas vraiment ou tu veux en venir je me permet de te donner mon exemple qui pourra peut-être t'aider en attendant qu'un calé du PHP intervienne.

ob_start ob_flush etc..

par reg35 » 25 févr. 2017, 10:45

Bonjour,

J'ai un léger problème avec cette fonctionnalité. Ce n'est pas du coté php que j'ai un soucis mais je ne sais pas ou poster ce message donc me voila.

J'ai une page avec pas mal d'élément donc j'utilise la temporisation via les fonctions ob pour l'afficher au fur et à mesure.

Si je résume le code j'ai ça

Code : Tout sélectionner

ob_start(); echo 'blabla 1'; echo str_pad('',8000); ob_flush(); flush(); echo 'blabla 2'; ob_end_flush();
Tout simple mais ça ne marche... je cherche je cherche, d'après tout ce que je lis je fait tout bien.
Et la je me rends compte que ce script fonctionne sur mon pc du taf mais pas sur mon perso.

Paramétrage du navigateur? J'ai firefox dernière version sur les 2 pc.

Quelqu'un a t'il une idée? Please !!

Regis