uawdijnntqw1x1x1
IP : 216.73.216.249
Hostname : webm001.cluster110.gra.hosting.ovh.net
Kernel : Linux webm001.cluster110.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
etiennec
/
www
/
oldsite
/
..
/
oldsite
/
ecrire
/
inc
/
mots.php
/
/
<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2011 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; include_spip('inc/actions'); // ne pas faire d'erreur si les chaines sont > 254 caracteres // http://doc.spip.org/@levenshtein255 function levenshtein255 ($a, $b) { $a = substr($a, 0, 254); $b = substr($b, 0, 254); return @levenshtein($a,$b); } // reduit un mot a sa valeur translitteree et en minuscules // http://doc.spip.org/@reduire_mot function reduire_mot($mot) { return strtr( translitteration(trim($mot)), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz' ); } // http://doc.spip.org/@mots_ressemblants function mots_ressemblants($mot, $table_mots, $table_ids='') { $result = array(); if (!$table_mots) return $result; $lim = 2; $nb = 0; $opt = 1000000; $mot_opt = ''; $mot = reduire_mot($mot); $len = strlen($mot); while (!$nb AND $lim < 10) { reset($table_mots); if ($table_ids) reset($table_ids); while (list(, $val) = each($table_mots)) { if ($table_ids) list(, $id) = each($table_ids); else $id = $val; $val2 = trim($val); if ($val2) { if (!isset($distance[$id])) { $val2 = reduire_mot($val2); $len2 = strlen($val2); if ($val2 == $mot) $m = -2; # resultat exact else if (substr($val2, 0, $len) == $mot) $m = -1; # sous-chaine else { # distance $m = levenshtein255($val2, $mot); # ne pas compter la distance due a la longueur $m -= max(0, $len2 - $len); } $distance[$id] = $m; } else $m = 0; if ($m <= $lim) { $selection[$id] = $m; if ($m < $opt) { $opt = $m; $mot_opt = $val; } $nb++; } } } $lim += 2; } if (!$nb) return $result; reset($selection); if ($opt > -1) { $moy = 1; while(list(, $val) = each($selection)) $moy *= $val; if($moy) $moy = pow($moy, 1.0/$nb); $lim = ($opt + $moy) / 2; } else $lim = -1; reset($selection); while (list($key, $val) = each($selection)) { if ($val <= $lim) { $result[] = $key; } } return $result; } /* * Affiche la liste des mots-cles associes a l'objet specifie * plus le formulaire d'ajout de mot-cle */ // http://doc.spip.org/@affiche_mots_ressemblant function affiche_mots_ressemblant($cherche_mot, $objet, $id_objet, $resultat, $table, $table_id, $url_base) { $les_mots = sql_in('id_mot', $resultat); $res = sql_allfetsel("*", "spip_mots", $les_mots, "", "titre", "17"); foreach ($res as $k => $row) { $id_mot = $row['id_mot']; $titre = $row['titre']; $type = typo($row['type']); $descriptif = $row['descriptif']; $res[$k]= ajax_action_auteur('editer_mots', "$id_objet,,$table,$table_id,$objet,$id_mot", $url_base, "$table_id=$id_objet", array(typo($titre),' title="' . _T('info_ajouter_mot') .'"'),"&id_objet=$id_objet&objet=$objet") . (!$descriptif ? '' : ("\n(<span class='spip_xx-small'>".supprimer_tags(couper(propre($descriptif), 100)).")</span><br />\n")); } $res2 = ($type ? "<strong>$type</strong> : " : '' ) . _T('info_plusieurs_mots_trouves', array('cherche_mot' => $cherche_mot)) ."<br />"; if (count($resultat) > 17) $res2 .= "<br /><strong>" ._T('info_trop_resultat', array('cherche_mot' => $cherche_mot)) ."</strong><br />\n"; return $res2 . '<ul><li>' . join("</li>\n<li>", $res) . '</li></ul>'; } ?>
/home/etiennec/www/oldsite/../oldsite/ecrire/inc/mots.php