Récupérer un bout de chaîne

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 : Récupérer un bout de chaîne

Re: Récupérer un bout de chaîne

par Castor Gaspard » 16 août 2010, 15:57

...

Le site est http://www.issuu.com.

Oui, j'ai fouillé l'Api en long, en large et en travers. :) En fait, Issuu revendique la non-conformité du code, expliquant qu'il permet aux animations de s'afficher quel que soit le navigateur, mais je ne crois guère à cette argumentation. Avec un code strict, les catalogues s'affichent correctement sur Internet Explorer, Google Chrome, Mozilla Firefox, alors...

Sinon, un article en français, hhttp://www.iptima.com/2010/04/19/publier-un-ca ... su-%c2%bb/, qui contient cependant deux ou trois erreurs, mais son auteur compte le remanier.

A plus,

Gaspard

Re: Récupérer un bout de chaîne

par stealth35 » 16 août 2010, 15:39

pourquoi rendre le code compatible Xhtml ?

la plateforme qui propose les "pageflip" a peu etre une api ? (c'est quoi le site ?)

Re: Récupérer un bout de chaîne

par Castor Gaspard » 16 août 2010, 15:29

...

Merci AB, tu as raison, ça fonctionne.

Pour répondre à Stealth, Issuu est une plateforme qui propose des "PageFlip", c'est-à-dire des catalogues feuilletables à l'écran au format Flash conçus le plus souvent à partir de documents Pdf. Disons que ce genre de présentation est plus à la mode qu'efficace. ^^

(D'ailleurs, j'eus aimé trouver une solution en Php pour générer ces "PageFlip", mais mes recherches n'ont rien donné.)

Donc Issuu propose un code à copier-coller sur son site pour afficher son catalogue. Or, le code proposé est à ch... Donc, l'idée a d'abord été de rendre le code compatible Xhtml en extrayant les champs avec parse_str (j'avais posé une question ici il y a quelques jours) puis en collant les fragments dans une chaîne valide. Avant de terminer ce traitement, une question me tracassait : en générant le code "propre", je voulais adapter automatiquement la largeur et la hauteur du catalogue proposé par défaut par Issuu à la largeur maximale de mon site, soient 940 pixels (puisque j'utilise "Grid 960" pour mes mises en page). Naturellement, largeur et hauteur proposées dépendent du fichier original, sinon, je me serai contenté d'un str_replace. :mrgreen:

Voilà, j'espère avoir répondu à la curiosité de Stealth. N'hésitez pas si vous avez d'autres questions.

Cordialement,

Gaspard

Re: Récupérer un bout de chaîne

par stealth35 » 16 août 2010, 15:15

c'est pour faire quoi a la fin ?

Re: Récupérer un bout de chaîne

par AB » 16 août 2010, 14:54

Une variante qui te permet d'avoir un nombre indéterminé de chiffres dans height :
if(preg_match('#height:(.*)px#U',$texte,$matches)) echo 'yes';

echo '<pre>';
print_r($matches[1]);
echo '</pre>';

Re: Récupérer un bout de chaîne

par Castor Gaspard » 16 août 2010, 14:33

Re...

j'ai travaillé et réfléchi. J'ai mis au point cette expression régulière :

Code : Tout sélectionner

#(?<=height:)\d{3}#
Exemple pratique...
$texte = '<div><object style="width:420px;height:148px" ><param name="movie" value="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed...';
preg_match('#(?<=height:)\d{3}#', $texte, $hauteur);
print_r($hauteur);
$hauteur = $hauteur[0];
echo $hauteur;
Le résultat s'affiche, mais je me demande si mon code est malin. :mrgreen:

En fait, le problème des "expreg" est qu'elles s'oublient encore plus vite que le Php classique quand on ne pratique plus.

Cordialement,

Gaspard

Re: Récupérer un bout de chaîne

par Castor Gaspard » 16 août 2010, 13:15

Bonjour,

Merci pour cette réponse, Auresmus. :)

Bah, oui, je pensais à une expression régulière, mais je ne savais pas comment la construire !

Pour le coup de main, le code proposé renvoie un tableau vide. :(

Merci.

Gasaprd

Re: Récupérer un bout de chaîne

par Aureusms » 16 août 2010, 11:47

Dirige toi vers les expression régulière (preg_match entre-autre)

Un p'tit coup de main (attention pas testé et cela retournera toutes les height présentes...) :
$texte = '<div><object style="width:420px;height:148px" ><param name="movie" value="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed...';
preg_match('#\w+height *: *([0-9]+) *px *;\w+#',$texte,$hauteur);
$hauteur = $hauteur[1];
echo $hauteur;

Récupérer un bout de chaîne

par Castor Gaspard » 16 août 2010, 11:32

Bonjour,

Peut-être aurez-vous une idée, car je sèche ! :mrgreen:

Soit la chaîne...

Code : Tout sélectionner

<div><object style="width:420px;height:148px" ><param name="movie" value="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed...
Comment récupérer uniquement la hauteur dans la chaîne, c'est-à-dire la valeur "148' (qui peut varier d'une chaîne à l'autre, évidemment !).

parse_str ne m'est d'aucun secours, semble-t-il, car la chaîne originale est plus longue et comprend plusieurs fois "height".

Merci.

Gaspard