Réduire en PHP vos urls pour réduire le code HTML

  Information

Pour réduire la taille du code html il est possible de remplacer les chemins absolus par des chemins relatifs.

On peut par exemple supprimer le début de l'url contenant le protocole et le domaine (http://www.domain.tld), remplacer le chemin du répertoire courant par ./, remplacer le chemin du répertoire supérieur par ../, etc

Cette fonction fait ce travaille là. Il suffit de passer en paramètre l'url à raccourcir et l'url de base.

L'url de base correspond à l'url de la page courante (comme dans l'exemple) ou l'url de base si le code HTML contient la balise [<]base href="http://www.domain.tld/unrepertoire/"[>]

  code source classé dans  HTML

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
 32    
 33    
 34    
 35    
 36    
 37    
 38    
 39    
 40    
 41    
 42    
 43    
                               
<?php
/*---------------------------------------------------------------*/
/*
    Titre : Réduire en PHP vos urls pour réduire le code HTML                                                           
                                                                                                                          
    URL   : https://phpsources.net/code_s.php?id=497
    Auteur           : forty                                                                                              
    Website auteur   : http://www.toplien.fr/                                                                             
    Date édition     : 24 Fév 2009                                                                                        
    Date mise à jour : 17 Aout 2019                                                                                      
    Rapport de la maj:                                                                                                    
    - fonctionnement du code vérifié                                                                                    
*/
/*---------------------------------------------------------------*/

function lien_relatif($url$url_base) {
  $resultat $url;
  // récupère le répertoire de l'url de base
  $path_point preg_replace('#/[^/]*$#'''$url_base);
  $replace_path_point '.';
  $racine 'http://' $_SERVER['HTTP_HOST'];
  if ($path_point == $racine) {
    $resultat preg_replace('/^' preg_quote($path_point '/''/') . '/'
$replace_path_point '/'$resultat);
  } else {
    while ($path_point != $racine) {
      $resultat preg_replace('/^' preg_quote($path_point '/''/') . '/'
$replace_path_point '/'$resultat);
      $path_point preg_replace('#/[^/]*$#'''$path_point);
      $replace_path_point .= '/..';
    }
    $resultat preg_replace('/^' preg_quote($racine '/''/') . '/''/'
$resultat); //Supprime http://www.domain.tld
  }
  $resultat preg_replace('/^\.\/([^#?])/''\\1'$resultat);  
//remplace ./x par x
  $resultat preg_replace('/^(\.\.?)\/$/''\\1'$resultat);  
//remplace ./ par . et ../ par ..
  return $resultat;
}
?>

Exemple :

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
 32    
 33    
 34    
 35    
 36    
 37    
 38    
 39    
 40    
 41    
                                
<?php

// détermination de l'url de la page courante sans paramètres
if (isset($_SERVER['SCRIPT_URI'])) {
  $url_courante $_SERVER['SCRIPT_URI'];
} else {
  $uri explode('?'$_SERVER['REQUEST_URI']);
  $url_courante 'http://' $_SERVER['HTTP_HOST'] . $uri[0];
}
?>
<a href="<?php echo lien_relatif('http://www.domain.tld/admin/unepage.html'
$url_courante); ?>">Une page</a>
<a href="<?php echo lien_relatif('http://www.domain.tld/'$url_courante); ?>
">Racine</a>
<a href="<?php echo lien_relatif('http://www.domain.tld/contact.html'
$url_courante); ?>">Contact</a>
<a href="<?php echo lien_relatif('http://www.domain.tld/functions/'
$url_courante); ?>">Toutes les fonctions</a>
<a href="<?php echo lien_relatif(
'http://www.domain.tld/functions/une-fonction.html'$url_courante); ?>
">Une fonction</a>
<a href="<?php echo lien_relatif(
'http://www.domain.tld/functions/otherfunctions/'$url_courante); ?>
">Autres fonctions</a>
<a href="<?php echo lien_relatif(
'http://www.domain.tld/functions/otherfunctions/uneautrefonction2.html'
$url_courante); ?>">Une autre fonction 2</a>
<!--
Si l'url courante est
 http://www.domain.tld/functions/functionsunder/uneautrefonction1.html le
 résultat sera : 

<a href="/admin/unepage.html">Une page</a>
<a href="/">Racine</a>
<a href="/contact.html">Contact</a>
<a href="..">Toutes les fonctions</a>
<a href="../une-fonction.html">Une fonction</a>
<a href=".">Autres fonctions</a>
<a href="uneautrefonction2.html">Une autre fonction 2</a>
-->

          Fonctions du code - Doc officielle PHP

   php.net   Description Versions PHP OUTIL
   echo Affiche une chaîne de caractères PHP 4, PHP 5, PHP 7, PHP 8
   explode Coupe une chaîne en segments PHP 4, PHP 5, PHP 7, PHP 8
   isset Détermine si une variable est affectée PHP 4, PHP 5, PHP 7, PHP 8
   preg_quote Échappement des caractères spéciaux des expressions rationnelles PHP 4, PHP 5, PHP 7, PHP 8
   preg_replace Rechercher et remplacer par expression rationnelle standard PHP 4, PHP 5, PHP 7, PHP 8
   return Retourne le controle du programme au module appelant. PHP 4, PHP 5, PHP 7, PHP 8

   Dites merci aux auteurs pour leurs travail, ça ne coûte rien et ça fait toujours plaisir wink

 Autres snippets qui pourraient vous intéressez

Analyse la validité d'un code HTML

Compatibilité : PHP 5, PHP 7

Analyse la syntaxe d'un fichier HTML. Retourne un tableau associatif rendant compte des erreurs contenues dans le fichier.

Colorise du code PHP avec validation HTML

Compatibilité : PHP 5, PHP 7

Colorise du code PHP et utilise la fonction native de PHP : highlight_string (). Ce script permet de valider la colorisation avec le HTML.

Interpréter du code PHP dans un fichier HTML

Compatibilité : PHP 5, PHP 7

Et oui ce n'est pas du PHP !! Cela se passe coté serveur. Mettez ces 2 lignes de code dans votre fichier .htaccess pour que vos fichiers .htm et .html soient interprét

Code pour convertir dans un format Latin ou UTF8 - PHP Sources

Compatibilité : PHP 4, PHP 5

Ce script va mettre a jour vos tables dans le format que vous souhaitez. Il est vivement recommandé de faire une sauvegarde de votre database avant de lancer ce script

Code langue en anglais - BDD PHP

Compatibilité : PHP 5, PHP 7

La liste des codes langue en anglais (norme 639-1). Utile pour exploiter HTTP_ACCEPT_LANGUAGE !

Présentation de PHP

PHP débutant et initié 50 Tutoriel

Présentation de MySQL

avatar

Forty

  24 Fév 2009

  SOURCE   Télécharger

Information sur les mises à jour

Dernière mise à jour :

    17 Aout 2019
    fonctionnement du code vérifié

9 799 Vues
Compatibilité
PHP 5, 7 et 8+