mots/save.php
2019-09-02 16:37:11 +02:00

161 lines
19 KiB
PHP

<?php
header('Content-type: application/json');
if (empty($_POST['sug'])) {
exit;
}
$content = $_POST['sug'];
$verbs1 = explode(',', 'abandonner,accepter,accompagner,accorder,accrocher,accuser,acheter,achever,adresser,affirmer,agiter,aider,aimer,ajouter,allumer,amener,amuser,animer,annoncer,appeler,apporter,approcher,appuyer,armer,arracher,arrêter,arriver,assister,assurer,attacher,attaquer,attirer,avancer,avouer,baisser,briller,briser,brûler,cacher,calmer,caresser,casser,causer,céder,cesser,changer,chanter,charger,chasser,chercher,commander,commencer,composer,compter,condamner,confier,considérer,consulter,contenter,continuer,coucher,couler,couper,coûter,créer,creuser,crier,croiser,danser,déchirer,décider,déclarer,dégager,demander,demeurer,dépasser,déposer,désigner,désirer,dessiner,détacher,deviner,diriger,discuter,disposer,distinguer,dominer,donner,douter,dresser,durer,écarter,échapper,éclairer,éclater,écouter,écraser,effacer,élever,éloigner,embrasser,emmener,empêcher,employer,emporter,enfermer,enfoncer,engager,enlever,entourer,entraîner,entrer,envelopper,envoyer,éprouver,espérer,essayer,essuyer,étaler,étonner,étouffer,étudier,éviter,examiner,exécuter,exiger,exister,expliquer,exposer,exprimer,fatiguer,fermer,figurer,fixer,fonder,forcer,former,frapper,fumer,gagner,garder,glisser,habiller,habiter,hésiter,ignorer,imaginer,importer,imposer,indiquer,inquiéter,inspirer,installer,intéresser,interroger,inventer,inviter,jeter,jouer,juger,lever,lier,lisser,livrer,lutter,manger,manier,manquer,marcher,marier,marquer,mêler,menacer,mener,mériter,miser,monter,montrer,nommer,obliger,observer,occuper,oser,oublier,parler,partager,passer,payer,pencher,pénétrer,penser,peser,placer,pleurer,plonger,porter,poser,posséder,pousser,précéder,précipiter,préférer,préparer,présenter,presser,prêter,prier,profiter,promener,prononcer,proposer,protéger,prouver,quitter,raconter,ramasser,ramener,rappeler,rapporter,rassurer,réclamer,recommencer,reculer,refuser,regarder,regretter,rejeter,relever,remarquer,remercier,remonter,remplacer,rencontrer,renoncer,rentrer,renverser,répéter,reposer,repousser,représenter,réserver,résister,respecter,respirer,ressembler,rester,retirer,retomber,retourner,retrouver,réveiller,révéler,rêver,risquer,rouler,saluer,sauter,sauver,sembler,séparer,serrer,signer,signifier,songer,sonner,souffler,souhaiter,soulever,supporter,supposer,surveiller,tenter,terminer,tirer,tomber,toucher,tourner,tracer,traîner,traiter,transformer,travailler,traverser,trembler,tromper,troubler,trouver,tuer,user,veiller,verser,voler,voyager');
$verbs2 = explode(',', 'accomplir,agir,choisir,établir,finir,franchir,grandir,nourrir,obéir,réfléchir,remplir,réunir,réussir,saisir,subir,vêtir');
$verbs3 = explode(',', 'apercevoir,aperçois,aperçoit,apercevons,apercevez,aperçoivent,apparaître,apparais,apparait,apparqissons,apparqissez,apparaissent,apprendre,apprend,apprends,apprenons,apprenez,apprennent,atteindre,atteins,atteint,atteignons,atteignez,atteignent,attendre,attend,attends,attendons,attendez,attendent,avoir,ai,as,a,avons,avez,ont,boire,bois,boit,buvons,buvez,boivent,comprendre,comprend,comprends,comprenons,comprenez,comprennent,conclure,conclus,conclut,concluons,concluez,concluent,conduire,conduis,conduit,conduisons,conduisez,conduisent,confondre,confond,confonds,confondons,confondez,confondent,connaître,connais,connait,connaissons,connaissez,connaissent,construire,construis,construits,construisons,construisez,construisent,craindre,crains,craint,craignons,craignez,craignent,croire,crois,croit,croyons,croyez,croient,décrire,décris,décrit,décrivons,décrivez,décrivent,défendre,défends,défend,défendons,défendez,défendent,descendre,descend,descends,descendons,descendez,descendent,détruire,détruit,détruis,détruisons,détruisez,détruisent,devoir,dois,doit,devons,devez,doivent,dire,dis,dit,disons,disez,disent,disparaître,disparais,disparait,disparissons,disparaissez,disparraissent,écrire,écris,écrit,écrivons,écrivons,écrivent,entendre,entends,entend,entendons,entendez,entendent,éteindre,éteins,éteint,éteignons,éteignez,éteignent,étendre,étends,étend,étendons,étendez,étendent,être,suis,es,est,sommes,êtes,sont,falloir,faut,haïr,haïs,haït,haïssons,haïssez,haïssent,interrompre,interromps,interrompt,interrompons,interrompez,interrompent,joindre,joins,joint,joignons,joignez,joignent,lire,lis,lit,lisons,lisez,lisent,naître,nais,nait,naissons,naissez,naissent,paraître,parais,parait,paraissons,paraissez,paraissent,pendre,pend,pends,pendons,pendez,pendent,perdre,perd,perds,perdons,perdez,perdent,plaindre,plains,plaint,plaignons,plaignez,plaignent,plaire,plais,plait,plaisons,plaisez,plaisent,poursuivre,poursuis,poursuit,poursuivons,poursuivez,poursuivent,pouvoir,peux,peut,pouvons,pouvez,peuvent,prendre,prends,prend,prenons,prenez,prennent,prétendre,prétend,prétends,prétendons,prétendez,prétendent,prévoir,prévois,prévoit,prévoyons,prévoyez,prévoient,produire,produis,produit,produisons,produisez,produisent,promettre,promets,promet,promettons,promettez,promettent,recevoir,reçois,reçoit,recevons,recevez,reçoivent,reconnaître,reconnais,reconnait,reconnaissons,reconnaissez,reconnaissent,réduire,réduis,réduit,réduisons,réduisez,réduisent,rejoindre,rejoins,rejoint,rejoignons,rejoignez,rejoignent,rendre,rends,rend,rendons,rendez,rendent,répandre,répand,répands,répendons,répendez,répendent,répondre,répond,réponds,répondons,répondez,répondent,reprendre,reprends,reprend,reprenons,reprenez,reprenent,résoudre,résous,résout,resolvons,resolvez,resolvent,revoir,revois,revoit,revoyons,revoyez,revoient,rire,ris,rit,rions,riez,rient,rompre,romps,rompt,rompons,rompez,rompent,satisfaire,satisfais,satisfait,satisfaisons,satisfaisez,satisfaisent,savoir,sais,sait,savons,savez,savent,sourire,souris,sourit,sourions,souriez,sourient,suffire,suffis,suffit,suffisons,suffisez,suffisent,suivre,suis,suit,suivons,suivez,suivent,surprendre,surprends,surprend,surprenons,surprenez,surprennent,taire,tais,tait,taisons,taisez,taisent,tendre,tends,tend,tendons,tendez,tendent,vaincre,vaincs,vainc,vainquons,vainquez,vainquent,valoir,vaux,vaut,valons,valez,valent,vendre,vends,vend,vendons,vendez,vendent,vivre,vis,vit,vivons,vivez,vivent,voir,vois,voit,voyons,voyez,voient,vouloir,veux,veut,voulons,voulez,veulent,appartenir,appartiens,appartient,appartenons,appartenez,appartiennent,consentir,consens,consent,consentons,consentez,consentent,contenir,contiens,contient,contenons,contenez,contiennent,convenir,conviens,convient,convenons,convenez,conviennent,courir,cours,court,courrons,courrez,courrent,couvrir,couvres,couvre,couvrons,couvrez,couvrent,découvrir,découvres,découvre,découvrons,découvrez,découvrent,devenir,deviens,devient,devenons,devenez,deviennent,dormir,dors,dort,dormons,dormez,dorment,endormir,endors,endort,endormons,endormez,endorment,entretenir,entretiens,entretient,entretenons,entretenez,entretiennent,fuir,fuis,fuit,fuyons,fuyez,fuient,maintenir,maintiens,maintient,maintenons,maintenez,maintiennent,mentir,mens,ment,mentons,mentez,mentent,mourir,meurs,meurt,mourons,mourez,meurent,obtenir,obtient,obtiens,obtenons,obtenez,obtiennent,offrir,offres,offre,offront,offrez,offrent,ouvrir,ouvres,ouvre,ouvrons,ouvrez,ouvrent,parcourir,parcours,parcourt,parcourons,parcourez,parcourent,partir,pars,part,partons,partez,partent,parvenir,parviens,parvient,parvenons,parvenez,parviennent,prévenir,préviens,prévient,prévenons,prévenez,préviennent,recueillir,recueilles,recueille,recueillons,recueillez,recueillent,retenir,retiens,retient,retenons,retenez,retiennet,revenir,reviens,revient,revenons,revenez,reviennent,sentir,sens,sent,sentons,sentez,sentent,servir,sers,sert,servons,servez,servent,sortir,sors,sort,sortons,sortez,sortent,souffrir,souffres,souffre,souffrons,souffrez,souffrent,soutenir,soutiens,soutient,soutenons,soutenez,soutiennent,souvenir,souviens,souvient,souvenons,souvenez,souviennent,tenir,tiens,tient,tenons,tenez,tiennent,venir,viens,vient,venons,venez,viennent,aller,vais,vas,va,allons,allez,vont,faire,fais,fait,faisons,faisez,font,asseoir,assois,assoit,assoyons,assoyez,assoient');
$verbs3ttre = explode(',', 'abattre,admettre,battre,mettre,permettre,remettre,soumettre');
$adverbs = explode(',', 'd,l,n,s,m,à,absolument,afin,ah,ailleurs,ainsi,alors,attention,assez,au,aux,aujourd\'hui,auprès,auquel,aussi,aussitôt,autant,après,arrière,aucun,aucune,autour,autrefois,autrement,avant,avec,beau,beaux,belle,belles,beaucoup,bientôt,brusquement,ça,car,ce,ceci,cela,celui,cependant,certain,certainement,certes,chacun,chacune,chaque,chez,ci,cinq,cinquante,combien,comme,comment,complètement,courant,d\'abord,dans,d\'autre,d\'autres,davantage,de,debout,dehors,déjà,delà,demain,depuis,derrière,dès,des,désormais,dessus,deux,devant,dimanche,divers,dix,donc,dont,doucement,douze,du,durant,eau,eaux,également,eh,en,encore,enfin,ensuite,entre,environ,est,et,etc,fois,grâce,guère,hier,hors,huit,ici,jamais,je,jusque,jusqu\'à,là,la,le,lentement,laquelle,lequel,lesquels,lesquelles,longtemps,lors,lorsque,lui,l\'un,l\'une,madame,maintenant,mais,malgré,me,même,midi,moi,moins,mois,mon,naturellement,ne,nez,ni,non,nord,notre,nous,oh,on,or,ou,où,oui,par,parce,parfaitement,parfois,parmi,partout,pas,pendant,peu,plus,plusieurs,plutôt,pour,pourquoi,pourtant,près,presque,printemps,profondément,propos,puis,puisque,quand,quant,quarante,quatre,que,quel,quelque,quelqu\'un,qui,quinze,quoi,rapidement,rien,sans,se,selon,sept,seulement,si,simplement,six,soit,son,soudain,sous,souvent,suivant,sur,surtout,tandis,tant,tantôt,tard,te,tel,tellement,toi,ton,tôt,toujours,tout,toute,trente,très,trois,troisième,trop,tu,un,une,vers,vieil,vieux,vingt,vite,voici,voilà,votre,vous,vraiment,y,oeil,yeux');
$adjectives = explode(',', 'absolu,ancien,anglais,bas,blanc,bleu,blond,bon,calme,capable,chaud,cher,clair,commun,complet,content,court,cruel,curieux,dangereux,différent,difficile,digne,double,doux,droit,drôle,dur,égal,épais,étendu,éternel,étrange,étroit,extraordinaire,facile,faible,fidèle,fier,fin,fort,frais,franc,français,froid,gauche,général,grand,grave,gris,gros,haut,heureux,immense,immobile,important,impossible,inutile,jaune,jeune,joli,juste,large,léger,libre,long,lourd,magnifique,mauvais,meilleur,mien,mince,muet,naturel,nécessaire,nerveux,neuf,nombreux,nouveau,nu,nul,ouvert,pareil,perdu,petit,plein,politique,possible,précieux,précis,premier,présent,prochain,profond,propre,public,puissant,pur,rapide,rare,réel,riche,rond,rose,rouge,saint,sauvage,sec,secret,semblable,sérieux,seul,sien,silencieux,simple,social,sombre,sourd,supérieur,sûr,tendre,terrible,tranquille,triste,vaste,véritable,vert,vif,violent,visible,vivant,vrai');
$names = explode(',', 'abri,absence,accent,accord,acte,action,affaire,âgé,âge,agent,aide,aile,air,âme,ami,amour,an,angoisse,animal,année,apparence,appartement,appel,arbre,argent,arme,armée,arrivée,art,article,as,aspect,attitude,auteur,autorité,autre,avance,avenir,aventure,avis,banc,bande,barbe,bataille,beauté,besoin,bête,bien,billet,bois,bonheur,bord,bouche,bout,branche,bras,bruit,bureau,but,cabinet,camarade,campagne,caractère,carte,cas,cause,cent,centre,cercle,cerveau,chaîne,chair,chaise,chaleur,chambre,champ,chance,changement,chant,charge,chasse,chat,chef,chemin,chemise,cheval,cheveu,chien,chiffre,choix,chose,chute,ciel,circonstance,classe,clé,clef,coeur,coin,colère,colline,colon,combat,commencement,compagnie,compagnon,compte,condition,confiance,connaissance,conscience,conseil,contraire,contre,conversation,corde,corps,côte,côté,cou,couche,couleur,coup,cour,courage,cours,course,crainte,cri,crise,croix,cuisine,curiosité,dame,danger,début,défaut,demande,demi,dent,départ,dernier,désert,désespoir,désir,détail,devoir,dieu,direction,discours,discussion,distance,docteur,doigt,dos,douceur,douleur,doute,drame,éclat,école,effet,effort,élément,elle,émotion,empire,endroit,énergie,enfance,enfant,ennemi,énorme,ensemble,entier,entrée,envie,épaule,époque,erreur,escalier,espace,espèce,espoir,esprit,étage,état,été,étoile,étranger,étude,événement,exemple,existence,expérience,expression,face,façon,faim,fait,famille,fatigue,faute,fauteuil,faux,faveur,femme,fenêtre,fer,ferme,fête,feu,feuille,figure,fil,fille,fils,fixe,flamme,fleur,flot,foi,folie,fonction,fond,force,forêt,forme,fortune,fou,foule,frère,front,fruit,fumée,fusil,garçon,garde,genou,genre,gens,geste,glace,gloire,goût,goutte,gouvernement,grain,groupe,guerre,habitant,habitude,haine,hasard,hauteur,herbe,heure,histoire,hiver,homme,honneur,honte,horizon,hôtel,humain,humide,idée,il,île,image,importance,impression,inconnu,inquiétude,instant,instinct,intelligence,intention,intérêt,intérieur,jambe,jardin,jeu,jeunesse,joie,joue,jour,journal,journée,juge,justice,larme,lendemain,lettre,leur,lèvre,liberté,lien,lieu,ligne,lit,livre,loi,loin,loup,lueur,lumière,lune,lutte,machine,main,maison,maître,mal,malade,maladie,malheur,marchand,marché,marche,mari,mariage,masse,matière,matin,médecin,membre,mémoire,mensonge,mer,mesure,métier,mieux,milieu,militaire,mille,million,mine,ministre,minute,mode,moindre,moitié,moment,monde,monsieur,montagne,morceau,mort,mot,mouvement,moyen,mur,musique,naissance,nation,nature,noir,noire,nom,nombre,note,nuage,nuit,objet,occasion,odeur,oeuvre,officier,oiseau,ombre,oncle,ordre,oreille,ouvrage,page,pain,paix,palais,papa,papier,paquet,parent,parole,part,parti,particulier,partie,passage,passé,passion,patron,paupière,pauvre,pays,paysage,paysan,peau,peine,pensée,père,personnage,personne,perte,peuple,peur,phrase,pièce,pied,pierre,pitié,place,plaine,plaisir,plan,planche,plante,pluie,poche,poésie,poète,poids,point,pointe,poitrine,police,pont,port,porte,portier,position,poste,poussière,pouvoir,présence,président,prêt,preuve,prière,prince,principe,prison,prix,problème,professeur,projet,puissance,qualité,quart,quartier,question,queue,race,raison,rang,rapport,rayon,réalité,recherche,réflexion,regard,règle,relation,religion,rencontre,repas,réponse,résistance,respect,reste,résultat,retour,rêve,révolution,rideau,robe,roche,rocher,roi,rôle,roman,route,rue,ruine,sable,sac,saison,salle,salut,sang,santé,savoir,scène,science,second,seconde,secours,secrétaire,seigneur,sein,semaine,sens,sentier,sentiment,service,seuil,siècle,siège,signe,silence,situation,société,soi,soin,soir,soirée,sol,soldat,soleil,solitude,somme,sommeil,sommet,sorte,sou,souffrance,source,souvenir,spectacle,succès,sueur,suite,sujet,système,table,tâche,tache,taille,tapis,témoin,tempête,temps,terme,terrain,terre,terreur,terrible,tête,théâtre,titre,toile,toit,tombe,tour,trace,train,trait,travail,travers,trésor,trou,type,unique,usage,vague,valeur,veille,vent,ventre,vérité,verre,vêtement,victime,vide,vie,vieillard,village,ville,vin,violence,visage,vision,visite,voie,voile,voisin,voiture,voix,vol,volonté,voyage,vue');
$verbs1 = conjuguer1($verbs1);
$verbs2 = conjuguer2($verbs2);
$verbs3ttre = conjuguerttre($verbs3ttre);
$adjectives = varadj($adjectives);
$names = varnames($names);
function conjuguer1($v)
{
$v2 = $v;
for ($i = 0, $l = count($v); $i < $l; $i++) {
$strLen = strlen($v[$i]);
$curv = substr($v[$i], 0, $strLen - 1);
$curs = $curv . 's';
$strLen2 = strlen($curv);
$curv2 = substr($curv, 0, $strLen2 - 1);
$curons = substr($curv2, -1) === 'c' ? substr($curv2, 0, $strLen2 - 2) . "çons" : $curv2 . "ons";
$curez = $curv2 . 'ez';
$curent = $curv2 . 'ent';
array_push($v2, $curv, $curs, $curons, $curez, $curent);
}
return $v2;
}
function conjuguer2($v)
{
$v2 = $v;
for ($i = 0, $l = count($v); $i < $l; $i++) {
$strLen = strlen($v[$i]);
$curv = substr($v[$i], 0, $strLen - 1);
$curs = $curv . 's';
$curt = $curv . 't';
$curons = $curv . 'ssons';
$curez = $curv . 'ssez';
$curent = $curv . 'ssent';
array_push($v2, $curt, $curs, $curons, $curez, $curent);
}
return $v2;
}
function conjuguerttre($v)
{
$v2 = $v;
for ($i = 0, $l = count($v); $i < $l; $i++) {
$strLen = strlen($v[$i]);
$curv = substr($v[$i], 0, $strLen - 3);
$curs = $curv . 's';
$curons = $curv . 'tons';
$curez = $curv . 'tez';
$curent = $curv . 'tent';
array_push($v2, $curv, $curs, $curons, $curez, $curent);
}
return $v2;
}
function varadj($a)
{
$a2 = $a;
for ($i = 0, $l = count($a); $i < $l; $i++) {
$adj = $a[$i];
if ($adj === '') continue;
// pluriel
if (substr($adj, -1) !== 's' && substr($adj, -1) !== 'x') {
if (substr($adj, -3) === 'eau') {
array_push($a2, $adj . 'x');
} else if (substr($adj, -2) !== 'al') {
array_push($a2, $adj . 's');
} else {
array_push($a2, substr($adj, 0, $adj . strlen($adj) - 2) . 'aux');
}
}
// féminin
$fem = "";
if (substr($adj, -2) === 'er' || substr($adj, -2) === 'et') {
$fem = substr($adj, strlen($adj) - 2) . 'è' . substr($adj, -1) . 'e';
}
if (substr($adj, -2) === 'en') {
$fem = substr($adj, 0, strlen($adj) - 2) . 'enne';
} else if (substr($adj, -2) === 'as') {
$fem = $adj . 'se';
} else if (substr($adj, -1) === 'c') { // NO !
$fem = $adj . 'he';
} else if (substr($adj, -1) === 'n' && substr($adj, -2, 1) != 'e') {
$fem = $adj . 'ne';
} else if (substr($adj, -1) === 'l') {
$fem = $adj . 'e';
} else if (substr($adj, -1) === 'f') {
$fem = substr($adj, 0, strlen($adj) - 1) . 've';
} else if (substr($adj, -1) === 'g') {
$fem = $adj . 'ue';
} else if (substr($adj, -1) === 'x') {
$fem = substr($adj, 0, strlen($adj) - 1) . 'se';
} else if (substr($adj, -3) === 'eau') {
$fem = substr($adj, 0, strlen($adj) - 3) . 'elle';
}
if ($fem == "" && substr($adj, -1) != 'e') {
$fem = $adj . 'e';
}
if ($fem != "") {
array_push($a2, $fem, $fem . 's');
}
}
return $a2;
}
function varnames($n)
{
$n2 = $n;
for ($i = 0, $l = count($n); $i < $l; $i++) {
$nam = $n[$i];
if ($nam == "") continue;
// pluriel
if (substr($nam, -1) != 's' && substr($nam, -1) != 'x') {
if (substr($nam, -3) == 'eau') {
array_push($n2, $nam . 'x');
} else if (substr($nam, -2) != 'al') {
array_push($n2, $nam . 's');
} else {
array_push($n2, substr($nam, 0, $nam . strlen($nam) - 2) . 'aux');
}
}
}
return $n2;
}
function multiexplode($delimiters, $string)
{
$ready = str_replace($delimiters, $delimiters[0], $string);
$launch = explode($delimiters[0], $ready);
return $launch;
}
$terms = array_merge($adverbs, $adjectives, $names, $verbs1, $verbs2, $verbs3ttre, $verbs3);
$words = str_replace(array('.', '!', ',', ';', '?'), "", $content);
$words = multiexplode(array(" ", "\n", "'"), $words);
foreach ($words as $word) {
$word = trim(strtolower($word));
if (!empty($word) && !in_array($word, $terms)) {
exit;
}
}
$tod = gettimeofday();
$finalFilename = $tod['sec'] . $tod['usec'] . rand(0, 50);
file_put_contents('saved/' . $finalFilename, $content);
echo function_exists('json_encode') ? json_encode(array('file' => $finalFilename)) : '{"file":"' . $finalFilename . '"}';