Accueil - PHP Tout afficher

Réparer une chaîne HTML en PHP

Wakonda - PHP Posté le 4 février 2016

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

Wakonda - PHP Posté le 1 janvier 2016

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 ...

Détection du protocole avec PHP

Wakonda - PHP Posté le 1 janvier 2016

$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'?'https':'http';

 

Lire ...

Supprimer les balises "<br / >" en fin de chaîne de caractères

Wakonda - PHP Posté le 1 janvier 2016

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
Lire ...

Compter le nombre de lignes dans un fichier (PHP)

Wakonda - PHP Posté le 11 mai 2024

$content_file = file_get_contents('my_file.txt');

echo substr_count($content_file, "\n");

 

Lire ...

Trouver le type d’une variable (PHP)

Wakonda - PHP Posté le 21 décembre 2015

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

Wakonda - PHP Posté le 21 décembre 2015

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"

Wakonda - PHP Posté le 26 août 2015

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 ...

Détecter le protocole utilisé en PHP

Wakonda - PHP Posté le 26 août 2015

Le code suivant vous permettra de détecter le protocole utilisé sur la page courante :

$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'?'https':'http';

 

Lire ...

Fonction pour supprimer les caractères spéciaux en PHP

Wakonda - PHP Posté le 26 août 2015

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

Wakonda - PHP Posté le 1 août 2015

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 ...

Compter le nombre de lignes dans un fichier (PHP)

Wakonda - PHP Posté le 21 décembre 2015

Ce petit script vous permettra de connaître le nombre de lignes contenu dans un fichier :

$contenu_fichier = file_get_contents('fichier.txt');

echo substr_count($contenu_fichier, "\n");

 

Lire ...

Rechercher

Tags

Publicité

Suivez-nous

Aidez-nous !


Loading…
Loading the web debug toolbar…
Attempt #