code || $notice->thumbnail_url) {
if ($notice->thumbnail_url)
$url_image_ok=$notice->thumbnail_url;
else {
$code_chiffre = pmb_preg_replace('/-|\.| /', '', $notice->code);
$url_image = $opac_book_pics_url ;
$url_image = $opac_url_base."getimage.php?url_image=".urlencode($url_image)."¬icecode=!!noticecode!!&vigurl=".urlencode($notice->thumbnail_url) ;
$url_image_ok = str_replace("!!noticecode!!", $code_chiffre, $url_image) ;
}
}
} else {
$url_image_ok=$opac_url_base."images/vide.png";
}
return $url_image_ok;
}
// ----------------------------------------------------------------------------
// fonctions de formatage de chaine
// ----------------------------------------------------------------------------
// reg_diacrit : fonction pour traiter les caracteres accentues en recherche avec regex
// choix de la classe à utiliser pour envoi en pdf
if (!isset($fpdf)) {
if ($charset != 'utf-8') $fpdf = 'FPDF'; else $fpdf = 'UFPDF';
}
function reg_diacrit($chaine) {
// a priori inutile sauf dans selecteur emprunteur, mais devrait etre changee.
global $charset;
global $include_path;
// preparation d'une chaine pour requete par REGEXP
global $tdiac ;
if (!$tdiac) {
$tdiac = new XMLlist("$include_path/messages/diacritique$charset.xml");
$tdiac->analyser();
}
foreach($tdiac->table as $wreplace => $wdiacritique) {
if(pmb_preg_match("/$wdiacritique/", $chaine))
$chaine = pmb_preg_replace("/$wdiacritique/", $wreplace, $chaine);
}
$tab = pmb_split('/\s/', $chaine);
// mise en forme de la chaine pour les alternatives
// on fonctionne avec OU (pour l'instant)
if(sizeof($tab) > 1) {
foreach($tab as $dummykey=>$word) {
if($word) $this->mots[] = "($word)";
}
return join('|', $this->mots);
} else {
return $chaine;
}
}
function convert_diacrit($string) {
global $tdiac;
global $charset;
global $include_path;
if(!$string) return;
if (!$tdiac) {
$tdiac = new XMLlist("$include_path/messages/diacritique$charset.xml");
$tdiac->analyser();
}
foreach($tdiac->table as $wreplace => $wdiacritique) {
if(pmb_preg_match("/$wdiacritique/", $string))
$string = pmb_preg_replace("/$wdiacritique/", $wreplace, $string);
}
return $string;
}
//strip_empty_chars : enleve tout ce qui n'est pas alphabetique ou numerique d'une chaine
function strip_empty_chars($string) {
// traitement des diacritiques
$string = convert_diacrit($string);
// Mis en commentaire : qu'en est-il des caracteres non latins ???
// SUPPRIME DU COMMENTAIRE : ER : 12/05/2004 : ça fait tout merder...
// RECH_14 : Attention : ici suppression des eventuels "
// les " ne sont plus supprimes
$string = stripslashes($string) ;
$string = pmb_alphabetic('^a-z0-9\s', ' ',pmb_strtolower($string));
// remplacement espace insécable 0xA0: Non-breaking space
$string = clean_nbsp($string);
// espaces en debut et fin
$string = pmb_preg_replace('/^\s+|\s+$/', '', $string);
// espaces en double
$string = pmb_preg_replace('/\s+/', ' ', $string);
return $string;
}
// strip_empty_words : fonction enlevant les mots vides d'une chaine
function strip_empty_words($string, $lg = 0) {
// on inclut le tableau des mots-vides pour la langue par defaut si elle n'est pas precisee
// c'est normalement la langue de catalogage...
// sinon on inclut le tableau des mots vides pour la langue precisee
// si apres nettoyage des mots vide la chaine est vide alors on garde la chaine telle quelle (sans les accents)
global $pmb_indexation_lang;
// global $lang;
global $include_path;
if (!$lg || $lg == $pmb_indexation_lang) {
global $empty_word;
} else {
include("$include_path/marc_tables/$lg/empty_words");
}
//echo "
";
//print_r($empty_word);
//echo "
";
// nettoyage de l'entree
// traitement des diacritiques
$string = convert_diacrit($string);
// Mis en commentaire : qu'en est-il des caracteres non latins ???
// SUPPRIME DU COMMENTAIRE : ER : 12/05/2004 : ça fait tout merder...
// RECH_14 : Attention : ici suppression des eventuels "
// les " ne sont plus supprimes
$string = stripslashes($string) ;
$string = pmb_alphabetic('^a-z0-9\s', ' ',pmb_strtolower($string));
// remplacement espace insécable 0xA0: Non-breaking space
$string = clean_nbsp($string);
// espaces en debut et fin
$string = pmb_preg_replace('/^\s+|\s+$/', '', $string);
// espaces en double
$string = pmb_preg_replace('/\s+/', ' ', $string);
$string_avant_mots_vides = $string ;
// suppression des mots vides
if(is_array($empty_word)) {
foreach($empty_word as $dummykey=>$word) {
$word = convert_diacrit($word);
$string = pmb_preg_replace("/^${word}$|^${word}\s|\s${word}\s|\s${word}\$/i", ' ', $string);
// RECH_14 : suppression des mots vides colles à des guillemets
if (pmb_preg_match("/\"${word}\s/i",$string)) $string = pmb_preg_replace("/\"${word}\s/i", '"', $string);
if (pmb_preg_match("/\s${word}\"/i",$string)) $string = pmb_preg_replace("/\s${word}\"/i", '"', $string);
}
}
// re nettoyage des espaces generes
// espaces en debut et fin
$string = pmb_preg_replace('/^\s+|\s+$/', '', $string);
// espaces en double
$string = pmb_preg_replace('/\s+/', ' ', $string);
if (!$string) {
$string = $string_avant_mots_vides ;
// re nettoyage des espaces generes
// espaces en debut et fin
$string = pmb_preg_replace('/^\s+|\s+$/', '', $string);
// espaces en double
$string = pmb_preg_replace('/\s+/', ' ', $string);
}
return $string;
}
// clean_string() : fonction de nettoyage d'une chaÓne
function clean_string($string) {
// on supprime les caractËres non-imprimables
$string = pmb_preg_replace("/\\x0|[\x01-\x1f]/U","",$string);
// suppression des caractËres de ponctuation indesirables
// $string = pmb_preg_replace('/[\{\}\"]/', '', $string);
// supression du point et des espaces de fin
$string = pmb_preg_replace('/\s+\.$|\s+$/', '', $string);
// nettoyage des espaces autour des parenthËses
$string = pmb_preg_replace('/\(\s+/', '(', $string);
$string = pmb_preg_replace('/\s+\)/', ')', $string);
// idem pour les crochets
$string = pmb_preg_replace('/\[\s+/', '[', $string);
$string = pmb_preg_replace('/\s+\]/', ']', $string);
// petit point de detail sur les apostrophes
//$string = pmb_preg_replace('/\'\s+/', "'", $string);
// 'trim' par regex
$string = pmb_preg_replace('/^\s+|\s+$/', '', $string);
// suppression des espaces doubles
$string = pmb_preg_replace('/\s+/', ' ', $string);
return $string;
}
//Corrections des caractères bizarres (voir pourris) de M$
function cp1252Toiso88591($str){
$cp1252_map = array(
"\x80" => "EUR", /* EURO SIGN */
"\x82" => "\xab", /* SINGLE LOW-9 QUOTATION MARK */
"\x83" => "\x66", /* LATIN SMALL LETTER F WITH HOOK */
"\x84" => "\xab", /* DOUBLE LOW-9 QUOTATION MARK */
"\x85" => "...", /* HORIZONTAL ELLIPSIS */
"\x86" => "?", /* DAGGER */
"\x87" => "?", /* DOUBLE DAGGER */
"\x88" => "?", /* MODIFIER LETTER CIRCUMFLEX ACCENT */
"\x89" => "?", /* PER MILLE SIGN */
"\x8a" => "S", /* LATIN CAPITAL LETTER S WITH CARON */
"\x8b" => "\x3c", /* SINGLE LEFT-POINTING ANGLE QUOTATION */
"\x8c" => "OE", /* LATIN CAPITAL LIGATURE OE */
"\x8e" => "Z", /* LATIN CAPITAL LETTER Z WITH CARON */
"\x91" => "\x27", /* LEFT SINGLE QUOTATION MARK */
"\x92" => "\x27", /* RIGHT SINGLE QUOTATION MARK */
"\x93" => "\x22", /* LEFT DOUBLE QUOTATION MARK */
"\x94" => "\x22", /* RIGHT DOUBLE QUOTATION MARK */
"\x95" => "\b7", /* BULLET */
"\x96" => "\x20", /* EN DASH */
"\x97" => "\x20\x20", /* EM DASH */
"\x98" => "\x7e", /* SMALL TILDE */
"\x99" => "?", /* TRADE MARK SIGN */
"\x9a" => "S", /* LATIN SMALL LETTER S WITH CARON */
"\x9b" => "\x3e;", /* SINGLE RIGHT-POINTING ANGLE QUOTATION*/
"\x9c" => "oe", /* LATIN SMALL LIGATURE OE */
"\x9e" => "Z", /* LATIN SMALL LETTER Z WITH CARON */
"\x9f" => "Y" /* LATIN CAPITAL LETTER Y WITH DIAERESIS*/
);
$str = strtr($str, $cp1252_map);
return $str;
}
// ----------------------------------------------------------------------------
// fonctions sur les dates
// ----------------------------------------------------------------------------
// today() : retourne la date du jour au format MySQL-DATE
function today() {
$jour = date('Y-m-d');
return $jour;
}
// formatdate() : retourne une date formatee comme il faut
function formatdate($date_a_convertir, $with_hour=0) {
global $msg;
global $dbh;
if ($with_hour) $resultatdate=mysql_query("select date_format('".$date_a_convertir."', '".$msg["format_date_heure"]."') as date_conv ");
else $resultatdate=mysql_query("select date_format('".$date_a_convertir."', '".$msg["format_date"]."') as date_conv ");
$date_conv=mysql_result($resultatdate,0,0);
return $date_conv ;
}
// formatdate_input() : retourne une date formatee comme il faut
function formatdate_input($date_a_convertir, $with_hour=0) {
global $msg;
global $dbh;
if ($with_hour) $resultatdate=mysql_query("select date_format('".$date_a_convertir."', '".$msg["format_date_heure"]."') as date_conv ");
else $resultatdate=mysql_query("select date_format('".$date_a_convertir."', '".$msg["format_date_input_model"]."') as date_conv ");
$date_conv=mysql_result($resultatdate,0,0);
return $date_conv ;
}
// extraitdate() : retourne une date formatee comme il faut
function extraitdate($date_a_convertir) {
global $msg;
$format_local = str_replace ("%","",$msg["format_date_input_model"]);
$format_local = str_replace ("-","",$format_local);
$format_local = str_replace ("/","",$format_local);
$format_local = str_replace ("\\","",$format_local);
$format_local = str_replace (".","",$format_local);
$format_local = str_replace (" ","",$format_local);
$format_local = str_replace ($msg["format_date_input_separator"],"",$format_local);
list($date[substr($format_local,0,1)],$date[substr($format_local,1,1)],$date[substr($format_local,2,1)]) = sscanf($date_a_convertir,$msg["format_date_input"]) ;
if ($date['Y'] && $date['m'] && $date['d']){
//$date_a_convertir = $date['Y']."-".$date['m']."-".$date['d'] ;
$date_a_convertir = sprintf("%04d-%02d-%02d",$date['Y'],$date['m'],$date['d']);
} else {
$date_a_convertir="";
}
return $date_a_convertir ;
}
function detectFormatDate($date_a_convertir,$compl="01"){
global $msg;
if(preg_match("#\d{4}-\d{2}-\d{2}#",$date_a_convertir)){
$date = $date_a_convertir;
}else if(preg_match(getDatePattern(),$date_a_convertir)){
$date = extraitdate($date_a_convertir);
}elseif(preg_match(getDatePattern("short"),$date_a_convertir)){
$format = str_replace ("%","",$msg["format_date_short"]);
$format = str_replace ("-","",$format);
$format = str_replace ("/","",$format);
$format = str_replace ("\\","",$format);
$format = str_replace (".","",$format);
$format = str_replace (" ","",$format);
$format = str_replace ($msg["format_date_input_separator"],"",$format);
list($date[substr($format,0,1)],$date[substr($format,1,1)],$date[substr($format,2,1)]) = sscanf($date_a_convertir,$msg["format_date_short_input"]);
if ($date['Y'] && $date['m']){
$date = sprintf("%04d-%02d-%02s",$date['Y'],$date['m'],$compl);
}else{
$date = "0000-00-00";
}
}elseif(preg_match(getDatePattern("year"),$date_a_convertir,$matches)){
$date = $matches[0]."-".$compl."-".$compl;
}else{
$date = "0000-00-00";
}
return $date;
}
function getDatePattern($format="long"){
global $msg;
switch($format){
case "long" :
$format_date = str_replace ("%","",$msg["format_date"]);
break;
case "short" :
$format_date = str_replace ("%","",$msg["format_date_short"]);
break;
case "year":
$format_date = "Y";
break;
}
$format_date = str_replace ("-"," ",$format_date);
$format_date = str_replace ("/"," ",$format_date);
$format_date = str_replace ("\\"," ",$format_date);
$format_date = str_replace ("."," ",$format_date);
$format_date=explode(" ",$format_date);
$pattern = array();
for($i=0;$i\n";
$nb_liste=mysql_num_rows($resultat_liste);
if ($nb_liste==0) {
$renvoi.="\n";
} else {
if ($option_premier_info!="") {
$renvoi.="\n";
}
$i=0;
while ($i<$nb_liste) {
$renvoi.="\n";
$i++;
}
}
$renvoi.="\n";
return $renvoi;
}
// ----------------------------------------------------------------------------
// fonction gen_liste_multiple qui genere des combo_box super sympas avec selection multiple
// ----------------------------------------------------------------------------
function gen_liste_multiple ($requete, $champ_code, $champ_info, $champ_selected, $nom, $on_change, $selected, $liste_vide_code, $liste_vide_info,$option_premier_code,$option_premier_info,$multiple=0) {
$resultat_liste=mysql_query($requete) or die ($requete);
$nb_liste=mysql_num_rows($resultat_liste);
if ($multiple && $nb_liste) {
if ($nb_liste < $multiple) $size = $nb_liste+1;
else $size = $multiple;
} else $size = 1 ;
$renvoi="\n";
return $renvoi;
}
// ----------------------------------------------------------------------------
// fonction do_selector qui genere des combo_box avec tout ce qu'il faut
// ----------------------------------------------------------------------------
function do_selector($table, $name='mySelector', $value=0) {
global $dbh;
global $charset;
$defltvar="deflt_".$table;
global $$defltvar;
if ($value==0) $value= $$defltvar ;
if(!$table)
return '';
$requete = "SELECT * FROM $table order by 2";
$result = @mysql_query($requete, $dbh);
$nbr_lignes = mysql_num_rows($result);
if(!$nbr_lignes)
return '';
$selector = "';
return $selector;
}
//------like print_r but more readable--for debugging purposes
function printr($arr,$filter="",$name="") {
//array_shift($args) ;
print "
";
return $nav_bar ;
}
// ----------------------------------------------------------------------------
// fonction de selection des sous-onglets
// ---------------------------------------------------------------------------
//exemple d'entree : categ=caddie&sub=gestion&quoi=panier
function ongletSelect($urlPart){
$returnSelection="";
$items=explode("&",$urlPart);
foreach($items as $item){
$item=explode("=",$item);
global ${$item[0]};
if (${$item[0]}==$item[1]){
$returnSelection=" class=\"selected\"";
} else {
$returnSelection="";
break;
}
}
return $returnSelection;
}
// ----------------------------------------------------------------------------
// fonction generant une alerte javascript
// ----------------------------------------------------------------------------
function alert_jscript ($message="") {
global $charset;
$ret = "
" ;
return $ret;
}
// ---------------------------------------------------------------------------------
// function called to clean marc fields from garbage in some italian z39.50 server
// ---------------------------------------------------------------------------------
function del_more_garbage($string) {
// delete the "<<" and ">>" symbols
// con l'apostrofo niente spazio
$string = preg_replace('/<<(\w*[\'])\s*>>\s*/', '$1',$string );
//senza apostrofo uno spazio
$string = preg_replace('/<<(\w*)\s*>>\s*/', '$1 ',$string );
// delete the "* " symbol
$string = preg_replace('/\*/', '',$string );
// delete the "," at the beginnin or at the end of the string
$string= preg_replace('/^\,|\,$/', '', $string);
return $string;
}
// ------------------------------------------------------------------
// pmb_preg_match($regex,$chaine) : recherche d'une regex
// ------------------------------------------------------------------
function pmb_preg_match($regex,$chaine) {
global $charset;
if ($charset != 'utf-8') {
return preg_match($regex,$chaine);
}
else {
return preg_match($regex.'u',$chaine);
}
}
// ------------------------------------------------------------------
// pmb_preg_grep($regex,$chaine) : recherche d'une regex
// ------------------------------------------------------------------
function pmb_preg_grep($regex,$chaine) {
global $charset;
if ($charset != 'utf-8') {
return preg_grep($regex,$chaine);
}
else {
return preg_grep($regex.'u',$chaine);
}
}
// ------------------------------------------------------------------
// pmb_preg_replace($regex,$replace,$chaine) : remplacement d'une regex par une autre
// ------------------------------------------------------------------
function pmb_preg_replace($regex,$replace,$chaine) {
global $charset;
if ($charset != 'utf-8') {
return preg_replace($regex,$replace,$chaine);
}
else {
return preg_replace($regex.'u',$replace,$chaine);
}
}
// ------------------------------------------------------------------
// pmb_str_replace($toreplace,$replace,$chaine) : remplacement d'une chaine par une autre
// ------------------------------------------------------------------
function pmb_str_replace($toreplace,$replace,$chaine) {
global $charset;
if ($charset != 'utf-8') {
return str_replace($toreplace,$replace,$chaine);
}
else {
return preg_replace("/".$toreplace."/u",$replace,$chaine);
}
}
// ------------------------------------------------------------------
// pmb_split($separateur,$string) : separe un chaine de caractere selon un separateur
// ------------------------------------------------------------------
function pmb_split($separateur,$chaine) {
global $charset;
if ($charset != 'utf-8') {
return explode($separateur,$chaine);
}
else {
return mb_split($separateur,$chaine);
}
}
/*
* ------------------------------------------------------------------
* pmb_alphabetic($regex,$replace,$string) : enleve les caracteres non alphabetique. Equivalent de [a-z0-9]
*
* Pour les caracteres latins;
* Pour l'instant pour les caracteres non latins:
* Armenien :
* \x{0531}-\x{0587}\x{fb13}-\x{fb17}
* Arabe :
* \x{0621}-\x{0669}\x{066E}-\x{06D3}\x{06D5}-\x{06FF}\x{FB50}-\x{FDFF}\x{FE70}-\x{FEFF}
* Cyrillique :
* \x{0400}-\x{0486}\x{0488}-\x{0513}
* Chinois :
* \x{4E00}-\x{9BFF}
* Japonais (Hiragana - Katakana - Suppl. phonetique katakana - Katakana demi-chasse) :
* \x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{31F0}-\x{31FF}\x{FF00}-\x{FFEF}
* Grec :
* \x{0386}\x{0388}-\x{038A}\x{038C}\x{038E}-\x{03A1}\x{03A3}-\x{03CE}\x{03D0}\x{03FF}\x{1F00}-\x{1F15}\x{1F18}-\x{1F1D}\x{1F20}-\x{1F45}\x{1F48}-\x{1F4D}\x{1F50}-\x{1F57}\x{1F59}\x{1F5B}\x{1F5D}\x{1F5F}-\x{1F7D}\x{1F80}-\x{1FB4}\x{1FB6}-\x{1FBC}\x{1FC2}-\x{1FC4}\x{1FC6}-\x{1FCC}\x{1FD0}-\x{1FD3}\x{1FD6}-\x{1FDB}\x{1FE0}-\x{1FEC}\x{1FF2}-\x{1FF4}\x{1FF6}-\x{1FFC}
* Géorgien
* \x{10A0}-\x{10C5}\x{10D0}-\x{10FC}\x{2D00}-\x{2D25}
* Hebreu
* \x{05D0}-\x{05EA}
* ------------------------------------------------------------------
*/
function pmb_alphabetic($regex,$replace,$string) {
global $charset;
if ($charset != 'utf-8') {
return preg_replace('/['.$regex.']/', ' ', $string);
} else {
/*return preg_replace('/['.$regex
.'\x{0531}-\x{0587}\x{fb13}-\x{fb17}'
.'\x{0621}-\x{0669}\x{066E}-\x{06D3}\x{06D5}-\x{06FF}\x{FB50}-\x{FDFF}\x{FE70}-\x{FEFF}'
.'\x{0400}-\x{0486}\x{0488}-\x{0513}'
.'\x{4E00}-\x{9BFF}'
.'\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{31F0}-\x{31FF}\x{FF00}-\x{FFEF}'
.'\x{0386}\x{0388}-\x{038A}\x{038C}\x{038E}-\x{03A1}\x{03A3}-\x{03CE}\x{03D0}\x{03FF}\x{1F00}-\x{1F15}\x{1F18}-\x{1F1D}\x{1F20}-\x{1F45}\x{1F48}-\x{1F4D}\x{1F50}-\x{1F57}\x{1F59}\x{1F5B}\x{1F5D}\x{1F5F}-\x{1F7D}\x{1F80}-\x{1FB4}\x{1FB6}-\x{1FBC}\x{1FC2}-\x{1FC4}\x{1FC6}-\x{1FCC}\x{1FD0}-\x{1FD3}\x{1FD6}-\x{1FDB}\x{1FE0}-\x{1FEC}\x{1FF2}-\x{1FF4}\x{1FF6}-\x{1FFC}'
.'\x{10A0}-\x{10C5}\x{10D0}-\x{10FC}\x{2D00}-\x{2D25}\x{05D0}-\x{05EA}'
.']/u', ' ', $string);*/
return preg_replace('/['.$regex.'\p{L}]/u', ' ', $string);//MB 28/10/14: http://www.regular-expressions.info/unicode.html
}
}
// ------------------------------------------------------------------
// pmb_strlen($string) : calcule la longueur d'une chaine pour utf-8 il s'agit du nombre de caracteres.
// ------------------------------------------------------------------
function pmb_strlen($string) {
global $charset;
if ($charset != 'utf-8')
return strlen($string);
else {
return mb_strlen($string,$charset);
}
}
// ------------------------------------------------------------------
// pmb_getcar($currentcar,$string) : recupere le caractere $cuurentcar de la chaine
// ------------------------------------------------------------------
function pmb_getcar($currentcar,$string) {
global $charset;
if ($charset != 'utf-8')
return $string[$currentcar];
else {
return mb_substr($string,$currentcar, 1,$charset);
}
}
// ------------------------------------------------------------------
// pmb_substr($chaine,$depart,$longueur) : recupere n caracteres
// ------------------------------------------------------------------
function pmb_substr($chaine,$depart,$longueur=0) {
global $charset;
if ($charset != 'utf-8') {
if ($longueur == 0)
return substr($chaine,$depart);
else
return substr($chaine,$depart,$longueur);
}
else {
if ($longueur == 0){
return mb_substr($chaine,$depart,mb_strlen($chaine),$charset);
}else
return mb_substr($chaine,$depart,$longueur,$charset);
}
}
// ------------------------------------------------------------------
// pmb_strtolower($string) : passage d'une chaine de caractere en minuscule
// ------------------------------------------------------------------
function pmb_strtolower($string) {
global $charset;
if ($charset != 'utf-8') {
return strtolower($string);
}
else {
return mb_strtolower($string,$charset);
}
}
// ------------------------------------------------------------------
// pmb_strtoupper($string) : passage d'une chaine de caractere en majuscule
// ------------------------------------------------------------------
function pmb_strtoupper($string) {
global $charset;
if ($charset != 'utf-8') {
return strtoupper($string);
}
else {
return mb_strtoupper($string,$charset);
}
}
// ------------------------------------------------------------------
// pmb_substr_replace($string,$replacement,$start,$length=null) : remplace un segment de la chaîne string par la chaîne replacement. Le segment est délimité par start et éventuellement par length
// ------------------------------------------------------------------
function pmb_substr_replace($string,$replacement,$start,$length=null) {
global $charset;
if($length === null){
$length=pmb_strlen($string);
}
if ($charset != 'utf-8'){
return substr_replace($string, $replacement, $start,$length);
}else{
$result = mb_substr ($string, 0, $start, 'UTF-8');
$result .= $replacement;
if ($length > 0)
{
$result .= mb_substr($string, ($start + $length), null, 'UTF-8');
}
return $result;
}
}
// ------------------------------------------------------------------
// pmb_escape() : renvoi la bonne fonction javascript en fonction du charset
// ------------------------------------------------------------------
function pmb_escape() {
global $charset;
if ($charset != 'utf-8') {
return "escape";
}
else {
return "encodeURIComponent";
}
}
// ------------------------------------------------------------------
// pmb_bidi($string) : renvoi la chaine de caractere en gerant les problemes
// d'affichage droite gauche des parentheses
// ------------------------------------------------------------------
function pmb_bidi($string) {
global $charset;
global $lang;
if ($charset != 'utf-8' or $lang == 'ar') {
// utf-8 obligatoire pour l'arabe
return $string;
}
else {
//\x{0600}-\x{06FF}\x{0750}-\x{077F} : Arabic
//x{0590}-\x{05FF} : hebrew
if (preg_match('/[\x{0600}-\x{06FF}\x{0750}-\x{077F}\x{0590}-\x{05FF}]/u', $string)) {
// 1 - j'entoure les caracteres arabes + espace ou parenthese ou chiffre de '
$string = preg_replace("/([\s*( )*(&)*\-*\(*0-9*]*[\x{0600}-\x{06FF}\x{0750}-\x{077F}\x{0590}-\x{05FF}]+([,*\s*( )*(&)*\-*\(*0-9*]*[\x{0600}-\x{06FF}\x{0750}-\x{077F}\x{0590}-\x{05FF}]*[,*\s*( )*(&)*\-*\)*0-9*]*)*)/u","\\1",$string);
// 2 - j'enleve les span dans les 'value' ca marche pas dans les ecrans de saisie
$string = preg_replace('/value=[\'\"](.*?)<\/span>[\'\"]/u','value=\'\\1\'',$string);
// 3 - j'enleve les span dans les 'title'
$string = preg_replace('/title=[\'\"](.*?)<\/span>/u','title=\'\\1',$string);
// 4 - j'enleve les span dans les 'alt'
$string = preg_replace('/alt=[\'\"](.*?)<\/span>/u','alt=\'\\1',$string);
// 4 - j'enleve les span sont entre cote, c'est que c'est dans une valeur.
$string = preg_replace('/[\'\"](.*?)<\/span>\'/u','\'\\1\'',$string);
// 4 - j'enleve les span dans les textarea.
//preg_match('/