Accueil - PHP Tout afficher
Réparer une chaîne HTML en PHP
En récupérant du contenu via un WYSIWYG en PHP, il y a des
risques que des balises HTML mal formatées apparaissent. Pour
éviter ce désagrément, PHP nous fournit une bibliothèque intitulée
"Tidy". Cette dernière permet de nettoyer et manipuler des éléments
HTML.
Pour l'utiliser, il faut, selon votre situation, soit simplement l'activer (si vous utilisez WampServer, par exemple), soit l'installer.
Voici un exemple simple d'utilisation :
<?php
ob_start();
?>
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</i>
</body>
</html>
<?php
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);
echo $tidy;
?>
Dans notre exemple, le code HTML est erroné. En effet, notre balise "<p>" n'est pas fermée et le mot "error" est entouré d'une balise fermante "i" jamais ouverte. La fonction "tidy_repair_string" va simplement nettoyer le code et nous renvoyer un HTML tout propre.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</p>
</body>
</html>
La fonction susmentionnée a donc fermé la balise "p", supprimé la balise "i" et ajouté un "doctype".
Si vous souhaitez uniquement parser le "body" d'un HTML, il suffit d'appeler l'option "show-body-only" :
$str = “<p>error.”
tidy_repair_string($str, array('show-body-only' => true), "utf8");
echo $str;
Le code ci-dessus retournera le code HTML suivant :
<p>error.</p>
Pour plus d'informations :
Lire ...Convertir des fichiers Word ou Excel en PDF avec PHP
En utilisant le logiciel OpenOffice, il est possible de
convertir des fichiers générés sous Microsoft Word ou Excel en PDF.
Voici comment procéder ...
Au préalable, vous devez installer OpenOffice sur l'ordinateur ou le serveur sur lequel votre site Internet tourne.
Les fonctions génériques à implémenter :
private function MakePropertyValue($name,$value,$osm)
{
$oStruct = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue");
$oStruct->Name = $name;
$oStruct->Value = $value;
return $oStruct;
}
private function word2pdf($doc_url, $output_url)
{
$osm = new \COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.\n");
$args = array($this->MakePropertyValue("Hidden",true,$osm));
$oDesktop = $osm->createInstance("com.sun.star.frame.Desktop");
if(file_exists($doc_url))
{
$oWriterDoc = $oDesktop->loadComponentFromURL("file:///".$_SERVER['DOCUMENT_ROOT'].'/'.$doc_url,"_blank", 0, $args);
$export_args = array($this->MakePropertyValue("FilterName","writer_pdf_Export",$osm));
$oWriterDoc->storeToURL($output_url,$export_args);
$oWriterDoc->close(true);
}
}
Appel de la fonction « word2pdf » :
$this->word2pdf('attachments/'.$currentEntity->getNameAttachment(),"file:///".$_SERVER['DOCUMENT_ROOT']."/attachments/".$nameFile.".pdf");
Lire ...
Supprimer les balises "<br / >" en fin de chaîne de caractères
preg_replace('#<[^>]+>$#','',$coNotationText);
Explication :
- Les caractères « # » représente la fin et le début de la chaîne de caractères
- Le caractère « * » signifie que l’on va remplacer l’ensemble des « <br /> »
- Le caractère « $ » signifie que l’on va remplacer l’ensemble des « <br /> » en fin de chaîne
Trouver le type d’une variable (PHP)
Pour trouver le type d'une fonction, on utilisera en PHP la fonction « gettype ».
Exemple :
$data = array(1, 1.6, NULL, new stdClass, 'foo');
foreach ($data as $value) {
echo gettype($value), "\n";
}
/*
Retournera :
integer
double
NULL
object
string
*/
Lire ...
Transformer une chaîne de caractères en tableau en PHP
En PHP, il existe deux fonctions qui permettent de transformer une chaîne de caractères en un tableau.
La fonction "explode"
La fonction est probablement la plus utilisée. Celle-ci va couper une chaîne en segments par rapport à un déliminateur.
Exemple d'utilisation :
$str = "pomme, fraise, poire";
$str_to_array = explode(", ", $str);
// $str_to_array sera égale à array("pomme", "fraise", "poire")
La fonction "str_split"
Cette fonction est semblable à la précédente, sauf qu'elle ne scinde pas une chaîne par rapport à un délimiteur mais par rapport à une longueur passée en paramètre.
Exemple d'utilisation :
$str = "Bataille d'Austerlitz : 1805";
$str_to_array = str_split($str, 5);
// $str_to_array sera égale à array("Batai", "lle d", "'Aust", "erlit", "z : 1", "805")
Lire ...
Accéder aux variables de "php.ini"
Le fichier "php.ini" contient une multitude de variables
permettant de configurer votre installation PHP. Par exemple,
d'activer ou de désactiver une extension ou encore déterminer la
taille maximale des fichiers qu'il sera possible d'uploader.
On utilise la fonction « ini_get » pour pouvoir lire les variables qui se trouvent dans le fichier « php.ini ».
$sizeMax = ini_get("upload_max_filesize");
Il est également possible de les modifier en utilisant la fonction « ini_set » :
ini_set("upload_max_filesize", “3M”);
Remarque :
La valeur donnée pour la variable « upload_max_filesize » se présente sous la forme “6M”, le “M” signifiant mégaoctet. Pour convertir cette donnée en octet, on utilisera la fonction suivante :
private function convertBytes($value)
{
if (is_numeric($value))
{
return $value;
}
else
{
$value_length = strlen( $value );
$qty = substr( $value, 0, $value_length - 1 );
$unit = strtolower( substr( $value, $value_length - 1 ) );
switch ( $unit )
{
case 'k':
$qty *= 1024;
break;
case 'm':
$qty *= 1048576;
break;
case 'g':
$qty *= 1073741824;
break;
}
return $qty;
}
}
Lire ...
Fonction pour supprimer les caractères spéciaux en PHP
La gestion des caractères spéciaux ("é", "ñ", ...) est souvent
délicate et il peut, de ce fait, être utile de les supprimer afin
de faciliter la manipulation d'une chaîne de caractères.
Fonctions de suppression (1)
public function strip_accent($string)
{
$patterns = array();
$replacements = array();
$patterns[0] = '/[\xe8-\xeb]/';
$patterns[1] = '/[\xc8-\xcb]/';
$patterns[2] = '/[\xc0-\xc5]/';
$patterns[3] = '/[\xe0-\xe5]/';
$patterns[4] = '/[\xf2-\xf6\xf8]/';
$patterns[5] = '/[\xd2-\xd6\xd8]/';
$patterns[6] = '/[\xcc-\xcf]/';
$patterns[7] = '/[\xec-\xef]/';
$patterns[8] = '/[\xd9-\xdc]/';
$patterns[9] = '/[\xf9-\xfc]/';
$patterns[10] = '/[\xff]/';
$patterns[11] = '/[\xdd]/';
$patterns[12] = '/[\xe7]/';
$patterns[13] = '/[\xc7]/';
$patterns[14] = '/[\xf1]/';
$patterns[15] = '/[\xd1]/';
$replacements[0] = 'e';
$replacements[1] = 'E';
$replacements[2] = 'A';
$replacements[3] = 'a';
$replacements[4] = 'o';
$replacements[5] = 'O';
$replacements[6] = 'I';
$replacements[7] = 'i';
$replacements[8] = 'U';
$replacements[9] = 'u';
$replacements[10] = 'y';
$replacements[11] = 'Y';
$replacements[12] = 'c';
$replacements[13] = 'C';
$replacements[14] = 'n';
$replacements[15] = 'N';
$string = utf8_decode($string);
$string = preg_replace($patterns, $replacements, $string);
return $string;
}
A utiliser pour les encodages de type ISO-8859-1 qui codent les caractères spéciaux (comme les accents) sur 2 octets.
Fonctions de suppression (2)
function stripAccents($string){
return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
}
Remarque :
Lorsque la page est encodée en UTF-8, alors les caractères spéciaux (comme les accents) se composent de deux bits. Ainsi :
echo strlen(« é »);
Affichera « 2 ».
Si on encode la page en UTF-8 sans Bom (ANSI as UTF-8, sous Notepad++), la même commande affichera « 1 ».
Lire ...Supprimer tous les accents en PHP
Cette fonction est utilisée pour supprimer la majorité des accents d'une chaîne de caractères donnée.
function remove_accents($string)
{
$tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
return(strtr($chaine,$tofind,$replac));
}
Lire ...
Rechercher
Tags
Articles récents
- Quel est le but de l'attribut "role" en HTML ?
- Changer la couleur de l'espace réservé (placeholder)
- Attention à cet email d’arnaque !
- Supprimer un fichier d'un référentiel Git sans le supprimer du système de fichiers local
- JS - Récupérer le dernier élément d'un tableau
- JS - Prévisualiser une image avec son upload
- PHP - Convertir une chaîne de caractères en un booléen
- PHP : Vérifier si une session a déjà été démarrée
- Créer un APK ou un AAB en ligne de commandes
- L'opérateur !! en Javascript