Formaweb met à votre disposition sur cette page, une série de script php pour des résultats très variés. Vous trouverez les exemples et le résultat de chaque script php.

Voici différents scripts php pour récupérer le nom d'une page en php. A savoir, la variable $_SERVER, souvent utilisé dans cette liste de script, est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script. Les entrées de ce tableau sont créées par le serveur web ce qui laisse sous entendre que le serveur ne remplira pas obligatoirement tous les champs.

basename

La fonction basename retourne le nom de la composante finale d'un chemin. Compatibilité : PHP 4, PHP 5, PHP 7. Basename() agit de manière naïve et n'a pas connaissance du système de fichiers sous-jacent ou des composantes d'un chemin telles que "..".

<?php
$page=basename(__FILE__);
echo $page;
?>
Réponse :

script-php.php

$_SERVER['PHP_SELF']

'PHP_SELF' récupère le nom du fichier du script en cours d'exécution, par rapport à la racine web. Ainsi, si vous le mettez dans un fichier qui est ensuite inclus ( include ) ou (require) 'PHP_SELF' récupèrera le nomdu fichier inclus.

<?php
$page2=$_SERVER['PHP_SELF'];
	echo $page2;
?>
Réponse :

/developpement/script-php.php

$_SERVER['REQUEST_URI']

'REQUEST_URI' renvoie l'URI fournie pour accéder à cette page. Par exemple : '/index.html'.

<?php
$page3=$_SERVER['REQUEST_URI'];
echo $page3;
?>
Réponse :

/developpement/script-php.php

$_SERVER['REQUEST_URI'] accompagné de langage régulier

Le langage régulier va nettoyer l'url de tous les tags et paramètres rajoutés à l'adresse url

<?php
$url = $_SERVER['REQUEST_URI']; 
      $reg = '#^(.+[\\\/])*([^\\\/]+)$#';
      define('onestla', preg_replace($reg, '$2', $url));
	  echo onestla.'
'; $ici= onestla; echo $ici; ?>
Réponse :

script-php.php
script-php.php

A noter : define définir une constante. define va donc traduire toutes les mentions du terme par le résultat. Dans cet exemple, lorsqu'on écrira onestla, cela se traduira par le nom de la page.

$_SERVER['REQUEST_URI'] accompagné de basename

basename renvoie la dernière composante d'un chemin et request uri permet quant à lui de récupérer le chemin d'accès au fichier.

<?php
$file = basename ($_SERVER['REQUEST_URI']);
echo $file;
?>
Réponse :

script-php.php

dirname(__FILE__);

Dirname renvoie le chemin parent d'un fichier ou d'un dossier. Dirname remonte à la racine de votre hébergeur.

<?php
$url2=dirname(__FILE__); 
echo $url2;
?>
Réponse : /home/-dossiers-racine-ftp-/developpement

Pathinfo()

Pathinfo () va retourner les informations d'un chemin système. Vous obtiendrez alors, le nom du fichier, le nom de l'extension, le nom du dossier de manière indépendante.

<?php
$path_parts = pathinfo('http://www.formaweb.fr/developpement/script-php.php');
echo $path_parts['dirname'].'<br />';
echo $path_parts['basename'].'<br />';
echo $path_parts['extension'].'<br />';
echo $path_parts['filename'].'<br />';
?>

Réponse :

http://www.formaweb.fr/developpement
script-php.php
php
script-php

récupérer l'url complète d'une page

enfin, pour récupérer toute l'url d'une page, vous pouvez réaliser une combinaison du langage serveur.

<?php
echo 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
?>
Réponse :

https://formaweb.fr/developpement/script-php.php

Lorsque l'on crée une fonction chargée de réaliser un tableau, la variable de retour ne ressort pas comme un tableau ( array) classique. Voici un exemple simple d'ajout d'élément dans un tableau nommé out[] à partir d'une fonction. La fonction est alors lancée à partir d'une variable. une boucle foreach est ajoutée

<?php
function data() {
    $out[] = "abc";
    $out[] = "def";
    $out[] = "ghi";
    return $out;
}

$data = data();
echo $data['0'].' - '.$data['1'].' - '.$data['2'];
echo '<hr/>';
foreach ($data as $mot)
{
echo $mot.'<br />';
}
?>
Réponse :

abc - def - ghi
abc
def
ghi

Lorsque l'on crée une page en php, c'est très certainement pour y placer des includes, c'est à dire des inclusions de scripts présents dans un autre fichier. Très pratique, cela vous permet de ne pas avoir à répéter systématiquement le même code. L'include du menu est un exemple classique. Vous créez une fois le script du menu puis vous faites un include de ce script. Mais si vous lisez cette astuce, c'est parce que vous maitrisez le principe de l'include mais il ne fonctionne pas comme vous voudriez. En effet, il apparait un décalage, un espace blanc juste après votre include. Vous avez cherché partout où se trouve cet espace mais en vain. L'espace n'est ni avant l'include, ni dans le script inclus. Essayez de modifier l'encodage. Copiez votre script. Effacez la page. Modifiez l'encodage pour "Encoder en UTF-8 (sans BOM). Collez le script à nouveau puis enregistrez. Rechargez votre page. Vous ne devriez désormais plus avoir d'espace intercalé. N'oubliez pas de répétez cette manipulation dans tous vos script inclus en PHP.

Vous avez besoin de convertir les caractères spéciaux en PHP ? Vous souhaitez que les caractères accentués soit supprimés pour etre remplacé par les caractères sans accent ? C'est possible et cela se réalise en 2 étapes. La première étape consiste à supprimer les accents. Pour cela nous allons passer par une fonction PHP dont voici le code :

<?php	
function normalize ($string) {
    $table = array(
        'Š'=>'S', 'š'=>'s', 'Đ'=>'Dj', 'đ'=>'dj', 'Ž'=>'Z', 'ž'=>'z', 'Č'=>'C', 'č'=>'c', 'Ć'=>'C', 'ć'=>'c',
        'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',
        'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O',
        'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss',
        'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e',
        'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o',
        'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b',
        'ÿ'=>'y', 'Ŕ'=>'R', 'ŕ'=>'r',
    );
    
    return strtr($string, $table);
?>

Il suffira ensuite d'appeler la fonction avec la phrase à convertir :

<?php
$texte_sans_accent=normalize($texte_avec_accent);

echo $texte_sans_accent;
?>

Une fois les accents convertis, vous pourrez traduire les autres caaractères spéciaux tels que les ? ou ! Cette fois, nous passerons par des caractères réguliers et nous chercherons à les traduires par un -.

<?php
 $texte = preg_replace('/([^.a-z0-9]+)/i','-', $texte_sans_accent);
?>

Bien entendu, vous pouvez remplacer le - pour ne rien mettre du tout. Pour cela, vous rrmplcez '-' par '' Si je mets tout ça bout à bout, cela nous donne :

<?php
function normalize ($string) {
    $table = array(
        'Š'=>'S', 'š'=>'s', 'Đ'=>'Dj', 'đ'=>'dj', 'Ž'=>'Z', 'ž'=>'z', 'Č'=>'C', 'č'=>'c', 'Ć'=>'C', 'ć'=>'c',
        'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',
        'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O',
        'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss',
        'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e',
        'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o',
        'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b',
        'ÿ'=>'y', 'Ŕ'=>'R', 'ŕ'=>'r',
    );
    
    return strtr($string, $table);
}

$texte=normalize($texte);
$texte = preg_replace('/([^.a-z0-9]+)/i','', $texte);
?>

Dans un formulaire, vous pouvez offrir à l'utilisateur un éventail de possibilité afin de le soumettre. Vous pouvez ainsi créer un bouton "valider" puis un second bouton " valider + option" etc. Les deux boutons valident le formulaire mais n'ont pas le même résultat. J'en ai eu l'utilité pour gérer le support d'un site. Un des bouton est utilisé pour envoyer une réponse. L'autre bouton dit que j'ai lu et que le message est classé. Cela devient utile pour les messages au support de remerciement. Inutile de répondre : " je vous remercie de me remercier". Il arrive qu'il faille tout simplement clore la conversation. Ce besoin peut également se faire ressentir pour éviter de renvoyer un formulaire en rechargeant la page. Mieux vaut alors vérifier que le bouton submit a été cliqué. D'un coté, vous avez donc le formulaire avec le bouton submit :

<?php
<form  method="POST" ... >
...
<button type="submit" name="sub" > Action 1 </button >
<button type="submit" name="sub2" > Action 2 </button >
</form>
?>

Puis vous avez le code pour vérifier que la validation du formulaire vient bien de de bouton :

<?php
if (isset($_POST["sub"]))
{ 
<!-- action à réaliser -->
}

if (isset($_POST["sub2"]))
{ 
<!-- action 2 à réaliser -->
}
?>

Pour remplacer tous les caractères d'une phrase, vous pouvez utiliser la fonction str_replace("x","y","phrase_a_traiter"); ou x est l'élément à remplacer et y l'élément de remplacement. Si vous souhaitez supprimer toutes les occurences d'un éléments précis dans cette phrase, il suffit de remplacer l'élément y par "". str_replace("x","","phrase_a_traiter");

Pour découper une phrase, vous pouvez utiliser la fonction explode("x","phrase_a_traiter"); ou x est l'élément qui fera la séparation Elle s'utilise de cette manière :

<?php
$partie=explode("-","phrase-a-traiter");
<!-- Cette phrase sera séparée autant de fois qu'il y a de tiret.
La première occurence sera : -->
$partie[0];
?>

Partie[0] dans cet exemple vaudra : phrase Partie[1] dans cet exemple vaudra : a Partie[2] dans cet exemple vaudra : traiter



Vous notre contenu ?

Lisez toute l'info de Formaweb avec votre café

Erreur : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known