Accueil - PHP Tout afficher

Scinder une chaîne de caractères avec chunk_split

Wakonda - PHP Posté le 19 mai 2019

La fonction chunk_split est très pratique puisqu'elle permet de scinder une chaîne de caractères en insérant, tous les X caractères, un autre caractère préalablement choisi.

Exemple :

$str = "0612345678";

chunk_split($str, 2, " "); // "06 12 34 56 78 "

Dans cet exemple, nous souhaitons formater un numéro de téléphone, en insérant tous les deux caractères un espace.

Cette fonction prend en premier paramètre la chaîne à scinder, en second paramètre la longueur de la portion, et en troisième, le caractère de fin de séquences.

Lire ...

Wamp - ssl certificate problem: unable to get local issuer certificate

Wakonda - Apache, PHP Posté le 11 mars 2019

En installant une nouvelle librairie, ou en utilisant un framework (comme Symfony), on peut tomber sur l’erreur suivante :

Wamp curl error 60: ssl certificate problem: unable to get local issuer certificate

Pour résoudre cette erreur, il existe une solution très simple :

  • Télécharger le certificat à cette adresse : https://curl.haxx.se/ca/cacert.pem
  • Copiez ce fichier dans votre dossier Wamp (C:\wamp64 par exemple).
  • Dans votre php.ini (vous pouvez le trouver en tapant, dans votre terminal, la commande suivante : « php --ini »), cherchez la ligne où se trouve « ;curl.cainfo = "" ». Modifiez-la comme ceci :
curl.cainfo = "C:\wamp64\cacert.pem"

N’hésitez pas à adapter cette ligne selon votre situation.

Une fois cette étape terminée, il vous suffit de redémarrer Wamp.

Lire ...

PHP - Lister simplement les fichiers / dossiers

Wakonda - PHP Posté le 15 décembre 2018

La façon la plus simple de lister l'ensemble des fichiers et / ou dossiers d'un répertoire est d'utiliser la fonction "glob()" :

Exemple :

$somePath = "../path/to/files";
$directories = glob($somePath . '/*' , GLOB_ONLYDIR);

foreach($directories as $dir)
        echo $dir."<br>";

Il existe une autre manière de lister les fichiers et dossiers en PHP.

Lire ...

PHP - Déterminer si une URL est ou non absolue

Wakonda - PHP Posté le 28 mai 2018

Avec cette simple fonction, vous pourrez tester si l'URL passée en paramètre est, ou non, absolue :

public function is_absolute($url)
{
    $pattern = "/^(?:ftp|https?|feed):\/\/(?:(?:(?:[\w\.\-\+!$&'\(\)*\+,;=]|%[0-9a-f]{2})+:)*
    (?:[\w\.\-\+%!$&'\(\)*\+,;=]|%[0-9a-f]{2})+@)?(?:
    (?:[a-z0-9\-\.]|%[0-9a-f]{2})+|(?:\[(?:[0-9a-f]{0,4}:)*(?:[0-9a-f]{0,4})\]))(?::[0-9]+)?(?:[\/|\?]
    (?:[\w#!:\.\?\+=&@$'~*,;\/\(\)\[\]\-]|%[0-9a-f]{2})*)?$/xi";

    return (bool) preg_match($pattern, $url);
}

Remarque : Cette fonction est notamment utilisée par le CMS Drupal.

Lire ...

WampServer + Php - Installer XDebug

Wakonda - PHP Posté le 10 mars 2018

Pour installer XDebug sous WampServer 3 et PHP 7.1.*, commencez par vous rendre sur le site Internet de XDebug. Puis cliquez sur "download". Choisissez la version qui correspond à votre installation et téléchargez la DLL. Si vous ne savez pas laquelle choisir, affichez un phpinfo() sur votre navigateur web préféré, sélectionnez tout et copiez le. Collez-le dans le champ texte présent à ce lien : https://xdebug.org/wizard.php. Cliquez enfin sur le bouton "Analyse my phpinfo() output". Ce petit programme vous indiquera quelle version vous devez choisir.

Une fois le fichier DLL téléchargé, coupez-le et collez-le dans le dossier "ext" là où se trouve votre PHP (C:\wamp64\bin\php\php7.1.9\ext, par exemple). Ouvrez maintenant votre fichier php.ini et ajoutez les lignes suivantes à la fin de ce dernier :

[xdebug]
zend_extension = c:\wamp64\bin\php\php7.1.9\ext\php_xdebug-2.6.0-7.1-vc14-x86_64.dll

xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = Off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="c:/wamp64/tmp"
xdebug.show_local_vars=0

Adaptez la configuration ci-dessus à votre installation.

Une fois ces étapes terminées, redémarrez Wamp et le tour est joué.

Remarque :

Si vous travaillez sous Symfony 4.* en dev, il vous faudra également redémarrer le serveur à l'aide de la commande suivante :

 php bin/console server:run

 

Lire ...

PHP - Augmenter la taille d'upload des fichiers grâce au HTACCESS

Wakonda - Apache, PHP Posté le 21 janvier 2018

Il existe plusieurs techniques pour augmenter la taille maximale de téléchargement en PHP. La plus classique est, bien entendu, de passer par le fichier php.ini. Il est également possible d'utiliser un fichier .htaccess.

Pour ce faire, créez-le (ou modifiez-le si vous en avez déjà un) et ajoutez-y les deux lignes suivantes :

php_value post_max_size 30M
php_value upload_max_filesize 30M

 

Lire ...

Filtrer sur la totalité des types d'espace en PHP

Wakonda - PHP Posté le 14 janvier 2018

« \s » permet de filtrer le caractère d'espace. Seulement, il existe une multitude de types de caractère représentant l'espace et ce filtre ne prend pas en compte les caractères au-delà de la table ASCII (donc supérieur à 128).

Parmi les différents types d'espace, on retrouve les suivants :

  • U+0020 Space
  • U+00A0 No-break space
  • U+1680 Ogham space mark
  • U+180E Mongolian vowel separator
  • U+2000 En quad
  • U+2001 Em quad
  • U+2002 En space
  • U+2003 Em space
  • U+2004 Three-per-em space
  • U+2005 Four-per-em space
  • U+2006 Six-per-em space
  • U+2007 Figure space
  • U+2008 Punctuation space
  • U+2009 Thin space
  • U+200A Hair space
  • U+202F Narrow no-break space
  • U+205F Medium mathematical space
  • U+3000 Ideographic space
  • U+0009 Horizontal tab
  • U+000A Linefeed
  • U+000B Vertical tab
  • U+000C Formfeed
  • U+000D Carriage return
  • U+0085 Next line
  • U+0009 Horizontal tab
  • U+000A Linefeed
  • U+000C Formfeed
  • U+000D Carriage return

En PHP, pour qu'il soit tous pris en compte sans exception, il faudra utiliser le filtre « /\s/u ». « /u » permet de prendre en compte les caractères UTF-8.

Par exemple, si l'on souhaite supprimer la totalité des espaces d'une chaîne de caractères, on pourra utiliser le code suivant :

$new_string = preg_replace('/\s/u', '', $old_string);

Pour plus d'explication

Lire ...

Gérer une base SQLite avec Adminer

Wakonda - PHP, SQLite Posté le 17 décembre 2017

Adminer est une application web offrant une interface graphique et permettant de gérer un grand nombre de SGBD différents tels que MySQL, SQLite, PostgreSQL ou encore Oracle. Il est très simple d'installation et d'utilisation. En effet, il se présente sous la forme d'un simple et unique fichier PHP qu'il suffit de télécharger et de coller dans votre serveur web.

Pourtant, nativement, il est nécessaire de surcharger les méthodes "login" et "databases" pour pouvoir gérer ses bases SQLite. Voici un exemple de code pour ceci :

<?php
function adminer_object() {
    class AdminerSoftware extends Adminer {
        function login($login, $password) {
            global $jush;
            if ($jush == "sqlite")
                return ($login === 'admin') && ($password === 'changeme');
            return true;
        }
        function databases($flush = true) {
            if (isset($_GET['sqlite']))
                return ["/path/to/first.db", "/path/to/second.db"];
            return get_databases($flush);
        }
    }
    return new AdminerSoftware;
}
include "./adminer-4.2.5.php";

Bien entendu, dans le code ci-dessus, il vous faudra remplacer le chemin vers votre fichier Adminer ainsi que les chemins vers votre ou vos bases de données (le retour de la fonction "databases".

Pour télécharger Adminer

Lire ...

PHP - Supprimer les commentaires HTML

Wakonda - HTML, PHP Posté le 18 janvier 2017

Voici une petite expression régulière qui vous permettra de supprimer les commentaires HTML :

/<!--(.*)-->/Uis

Exemple d'utilisation :

$html = "<p>Hello World!</p><!-- début d'un div--><div>Justin II (latin : Flavius Iustinus Iunior Augustus, grec : Φλάβιος Ἰουστίνος ὁ νεότερος) règne sur l’Empire byzantin du 15 novembre 565 à sa mort le 5 octobre 578 ; il est le neveu et successeur de Justinien Ier.</div><!-- find du div -->";
        
$html = preg_replace('/<!--(.*)-->/Uis', '', $html);

echo "<p>Hello World!</p><div>Justin II (latin : Flavius Iustinus Iunior Augustus, grec : Φλάβιος Ἰουστίνος ὁ νεότερος) règne sur l’Empire byzantin du 15 novembre 565 à sa mort le 5 octobre 578 ; il est le neveu et successeur de Justinien Ier.</div>";

 

Lire ...

PHP - Supprimer des balises HTML

Wakonda - HTML, PHP Posté le 17 janvier 2017

Voici une fonction simple afin de supprimer des balises HTML en PHP :

function removeTag($html, $tag) {
    return preg_replace('#</?'.$tag.'[^>]*>#is', '', $html);
}

Exemple d'utilisation :

$html = "<p><span class='bold'>Texte en gras</span></p>";

echo removeTag($html, $tag);
// Affichera '<p>Texte en gras</p>'

 

Lire ...

Silex - Récupérer l'objet '$request' avec Silex 2.*

Wakonda - PHP, Silex Posté le 30 décembre 2016

Depuis la mise à jour de Silex 1.* à Silex 2.*, l'accès à l'objet "$request" a été modifié.

Dans Silex 1.* :

$app["request"]

Dans Silex 2.* :

$app['request_stack']->getCurrentRequest()

 

Lire ...

Faire fonctionner cURL avec PHP 7 et Wamp

Wakonda - PHP Posté le 7 février 2016

Après avoir installé Wamp et PHP 7 sur mon Windows 10, j'ai voulu utiliser cURL. Je l'ai donc rendu disponible dans les "php.ini" (ceux d'Apache et de PHP) et j'ai redémarré Wamp. Hélas, malgré cela, cURL demeurait inutilisable.

Suite à quelques recherches, j'ai finalement trouvé la solution pour résoudre le problème. Dans un premier temps, j'ai copié le fichier "libssh2.dll" du dossier de PHP et je l'ai collé dans le dossier "bin" d'Apache.

J'ai ensuite ouvert le fichier "httpd.conf" et j'ai rajouté la ligne suivante :

LoadFile "c:/wamp/bin/php/php7.0.4/libssh2.dll"

Bien entendu, vous devez remplacer le chemin ci-dessus par celui qui correspond à votre configuration.

Lire ...

Rechercher

Tags

Publicité

Suivez-nous

Aidez-nous !


Loading…
Loading the web debug toolbar…
Attempt #