PHP: preg_split - Manual

OMAGAD Il existe une fonction comme explode mais qui utilise les regex : preg_split !


// scinde la phrase grâce aux virgules et espacements
// ce qui inclus les " ", \r, \t, \n et \f
$keywords = preg_split("/[\s,]+/", "langage hypertexte, programmation");
print_r($keywords);
// retour:
Array
(
    [0] => langage
    [1] => hypertexte
    [2] => programmation
)

et peut même renvoyer la position de chaque morceau dans la chaîne d'origine:


$str = 'langage hypertexte, programmation';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
// retour:
Array
(
    [0] => Array
        (
            [0] => langage
            [1] => 0
        )
[1] => Array
    (
        [0] => hypertexte,
        [1] => 8
    )

[2] => Array
    (
        [0] => programmation
        [1] => 20
    )

)

... voire même virer automatiquement les chaînes vides avec le flag PREG_SPLIT_NO_EMPTY

Reste plus qu'à benchmarquer pour voir si c'est pas trop gourmand par rapport à explode.

Googol v3.0: ya encore des fils qui pendent...

Je tiens au courant les quelques uns qui utilisent googol sur l'avancement des travaux.

J'ai entièrement refait la structure en abandonnant l'aspect «one file» au profit d'une répartition plus ... académique et surtout plus lisible.

En restructurant le tout, j'ai prévu l'implémentation future de solutions de fallback lors des bannissements par google (par exemple en allant interroger framabee.org pour récupérer temporairement les résultats en attendant que google nous oublie)

Je réfléchis encore à une solution permettant de «distribuer» les nouvelles regexes en cas de changement de la part de google... sans succès pour le moment.

J'ai ajouté des liens pour renvoyer la requête vers les moteurs de recherche alternatifs.

A vous de tester, là j'ai pas le temps de faire plus long http://googol.warriordudimanche.net/

Bisous !

Googol, des hoooo et des Bahhh...

Certains peuvent s'interroger sur le fait que googol cesse parfois tout bonnement de fonctionner... Et bien c'est simplement dû au fait que Google transforme sa page. Parfois complètement. Du coup la regex de parsage ne fait plus son taf. Mais quand il faut cibler des données sur leur page, faut voir à quoi on se heurte:


 <div class="ZINbbc xpd O9g5cc uUPGi">
   <div>
    <div class="jfp3ef">
     <a href="https://google.fr/url?q=https://trendy.letudiant.fr/tests-et-quiz.html&sa=U&ved=2ahUKEwjSntHNjsbiAhVCA4gKHWpRARwQFjAGegQIZBAB&usg=AOvVaw2mXT_9o0gy-P8Mb8zpR-pZ">
      <div class="BNeawe vvjwJb AP7Wnd">
       500 tests et quizz gratuits en ligne : personnalité, psycho et culture ...
      </div>
      <div class="BNeawe UPmit AP7Wnd">
       https://trendy.letudiant.fr › tests-et-quiz
      </div></a>
    </div>
    <div class="NJM3tb"></div>
    <div class="jfp3ef">
     <div>
      <div class="BNeawe s3v9rd AP7Wnd">
       <div>
        <div>
         <div class="BNeawe s3v9rd AP7Wnd">
          Psycho, sexo, love : tous nos tests et quiz pour en découvrir plus sur ta personnalité !
         </div>
        </div>
       </div>
      </div>
     </div>
    </div>
   </div>
  </div>

C'est pas beau ces noms de classe ? Ça sent les classes aléatoires dont les noms sont générés en début de session, ou bien je suis parano ?!

Pour cibler ça, surtout de façon pérenne, bonjour.

J'ai réfléchi à la solution d'un parseur xml mais bon:

  1. lesdits parseurs se foutent en PLS quand on leur file à bouffer une page google
  2. ce sera fatalement moins rapide et moins concis qu'avec une bonne regex bien faite (qui renvoie des données presqu'immédiatement utilisables)
  3. ça ne résoudra pas le problème de changement de contenu de la page.

    parseur et google

    Donc, je réfléchis à une alternative viable qui évite de remplacer l'url en dur dans le code... un fichier ini, peut-être ? En même temps, une fois sur deux changer la regex ne suffit pas, il y a une ou deux retouches de code à faire...

Et là, je vous parle même pas de la page images dans laquelle les liens vers les images semblent ... avoir disparu.

fontchier

[EDIT] Pour les images, ils utilisent de l'ajax, ce qui explique la disparition des images «en dur» exemple de requête (attention, ça pique): www.google.fr/async/imgrc?ei=YVTxXIPULPWj1fAP0Z-EwAM&hl=fr&yv=3&iact=rc&ved=0ahUKEwjDiMGulsbiAhX1URUIHdEPATgQMwhOKAMwAw&vet=10ahUKEwjDiMGulsbiAhX1URUIHdEPATgQMwhOKAMwAw..i&imgrt=0&q=test&imgurl=https://www.uhs.umich.edu/files/uhs/field/image/TEST.jpg&imgrefurl=https://www.uhs.umich.edu/testanxiety&tbnid=_Kh4MPtGrJjSRM:&docid=j4YSDljFZKmg5M&uact=3&ictx=1&csi=VJS.0,VOS.5&ri=3&bih=747&biw=1600&imgdii=_Kh4MPtGrJjSRM:&tbm=isch&tbs=&imgwo=1526&land=1&async=cidx:0,saved:0,iu:0,lp:0,_fmt:prog,_id:irc_imgrc0

Voilà... Je vais devoir me lancer dans de l'ajax... tant qu'à faire, je vais reprendre un peu le code et l'améliorer.

alt

Les générateurs en PHP – De geek à directeur technique

Yield et les itérateurs... c'est juste... bô

function monGenerateur() {
yield 'Alice' => 29;
yield 'Bob' => 34;
yield 'Camille' => 23;
}
foreach (monGenerateur() as $name => $age) {
print("$name a $age ans\n");
}


Via https://bookmarks.ecyseo.net/?fmwg0g

aprendomatico: l'automatisation de l'apprentissage des trucs chiants.

C'est marrant, internet: tu testes des trucs avec tes élèves, ça marche bien, t'en fais mention sur mastodon et PAF ! ça intéresse des gens... (comme quoi, on n'est pas à l'abri ! )

rhopitin

Donc, il y a eu des questions, des demandes etc.

Lire la suite de aprendomatico: l'automatisation de l'apprentissage des trucs chiants.

Fil RSS des articles de ce mot clé
  • @cochise t'es con ^^ J'ai failli marcher en fait ^^