Table des matières
Comprendre le problème: différences entre les chemins de fichier et les liens Web
Défi de base: conversion du chemin absolu du serveur vers URL Web
Implémentation et analyse de la fonction filepathtourl
Exemple complet: afficher le lien audio clickable dans la table HTML
Meilleures pratiques et précautions
Résumer
Maison interface Web tutoriel HTML PHP et MySQL: implémenter la conversion dynamique à partir du chemin du fichier de base de données vers le lien cliquable

PHP et MySQL: implémenter la conversion dynamique à partir du chemin du fichier de base de données vers le lien cliquable

Aug 30, 2025 pm 09:00 PM

PHP et MySQL: implémenter la conversion dynamique à partir du chemin du fichier de base de données vers le lien cliquable

Ce didacticiel explique en détail comment convertir dynamiquement le chemin d'accès absolu des fichiers (tels que l'audio) stocké dans une base de données en liens cliquables sur une page Web à l'aide de PHP et MySQL. Le noyau consiste à créer correctement la balise HTML et à résoudre le problème de la conversion entre le chemin du système de fichiers côté serveur et l'URL accessible au Web, garantissant que les utilisateurs peuvent accéder ou lire directement les fichiers en cliquant sur le lien.

Comprendre le problème: différences entre les chemins de fichier et les liens Web

Lors du développement d'applications Web, nous devons souvent présenter les chemins de fichier stockés dans la base de données aux utilisateurs et permettre aux utilisateurs d'accéder à ces fichiers en cliquant sur le lien. Cependant, les chemins de fichier directement interrogés à partir de la base de données MySQL (par exemple /var/www/website/files/audio/a1.mp3) sont généralement les chemins absolus du système de fichiers serveur. Ce chemin ne peut pas être utilisé directement comme un attribut HREF dans un navigateur Web, car ce dont le navigateur a besoin est un localisateur de ressources unifié (URL) accessible à http / https, tel que https://yourdomain.com/files/audio/a1.mp3.

Le cœur du problème est de convertir le chemin du système de fichiers serveur en une URL accessible au Web.

Implémentation de base: utilisez directement des balises HTML

Tout d'abord, comprenons comment rendre un chemin dans la base de données dans un lien HTML. Si le chemin stocké dans votre base de données est déjà une URL accessible au Web (par exemple, https://yourdomain.com/dictionaryaudio/a1.com), alors placez-le dans l'attribut HREF de la balise .

Voici un extrait de code PHP de base qui montre comment interroger les données de MySQL et l'afficher en tant que texte et liens simples:

  Php
// Supposons que $ conn est déjà une connexion de base de données valide // $ SQL = "SELECT ID, Word, Audio From Dictionary";
// $ result = mysqli_query ($ Conn, $ sql);

// if (mysqli_num_rows ($ result)> 0) {
// while ($ row = mysqli_fetch_assoc ($ result)) {
// // si $ row ["audio"] est déjà une URL accessible
// ECHO "ID:". $ row ["id"]. " - Mot: " . $ row ["word"]. "";
// echo "<a href="'%22." row> Cliquez pour lire audio </a> <br>";
//}
// } autre {
// écho "0 résultats";
//}
// mysqli_close ($ Conn);
?>

Cette méthode convient au stockage directement des URL Web dans une base de données. Cependant, pour le cas où le système de fichiers serveur est stocké, le code ci-dessus ne fonctionnera pas correctement car le navigateur ne peut pas comprendre le chemin du système de fichiers du serveur.

Défi de base: conversion du chemin absolu du serveur vers URL Web

Lorsque la base de données stocke le chemin de fichier absolu sur le serveur, nous avons besoin d'un mécanisme pour le convertir en URL HTTP / HTTPS que le navigateur peut reconnaître. Cela implique généralement les étapes suivantes:

  1. Déterminez le répertoire racine du document du serveur Web (Root du document): Il s'agit du point de départ pour le serveur Web pour fournir des services de fichiers. Par exemple, si votre fichier de site Web est situé dans / var / www / site Web, il s'agit du répertoire racine du document.
  2. Obtenez le chemin relatif du fichier: Supprimez la pièce du répertoire racine du document du chemin du fichier absolu et obtenez le chemin du fichier par rapport au répertoire racine du document.
  3. Créez une URL complète: combinez le protocole (HTTP / HTTPS), le nom de domaine et le chemin relatif pour générer une URL complète.

Pour atteindre cette transformation, nous pouvons définir une fonction d'assistance.

Implémentation et analyse de la fonction filepathtourl

  Php
/ **
 * Convertissez le chemin absolu du système de fichiers serveur en une URL accessible au Web.
 *
 * @param String $ AbsoluteFilepath Absolute Path to File, par exemple /var/www/website/files/audio/a1.mp3
 * @return String L'URL convertie ou renvoie un espace réservé lorsqu'il ne peut pas être converti.
 * /
fonction filepathTourl ($ absolueFilePath) {
    // !!! Important: veuillez modifier les deux constantes ou variables suivantes en fonction de la configuration de votre serveur !!!

    // Le répertoire racine de votre document de serveur Web.
    // Par exemple, si votre fichier de site Web est situé dans / var / www / html ou / var / www / site Web
    // Il est recommandé de le définir comme une constante ou une lecture à partir d'un fichier de configuration pour une amélioration de maintenabilité.
    $ documentroot = "/ var / www / site Web"; 

    // Nom de domaine de votre site Web.
    // Il peut être obtenu dynamiquement via $ _server ['http_host'], mais l'attention doit être accordée aux environnements de sécurité et multi-domaines.
    // Pour les tutoriels, nous utilisons la récupération dynamique, mais peut nécessiter une configuration plus rigoureuse dans les environnements de production.
    $ domain = $ _server ['http_host']; 

    // Déterminez dynamiquement le protocole demandé actuel (HTTP ou HTTPS)
    $ protocole = isset ($ _ serveur ['https']) && $ _server ['https'] === 'on'? "https": "http";

    // Vérifiez si le chemin du fichier démarre avec le répertoire racine du document if (strPos ($ AbsoluteFilePath, $ documentroot) === 0) {
        // Supprimez la pièce du répertoire racine du document et obtenez le chemin par rapport au répertoire de racine Web $ relativePath = substr ($ AbsoluteFilePath, strlen ($ documentroot));

        // construire une URL complète
        Retour $ Protocole. ": //". $ Domaine. $ relativePath;
    } autre {
        // Si le chemin du fichier n'est pas dans le répertoire racine du document, ou si c'est déjà une URL
        // Vous pouvez choisir de renvoyer le chemin d'origine (s'il s'agit déjà d'une URL), ou de renvoyer une erreur / espace réservé si (filter_var ($ absolueFilePath, filter_validate_url)) {
            retour $ AbsoluteFilepath; // Le chemin lui-même est l'URL
        }
        retourner "# invalid-path"; // chemin qui ne peut pas être converti}
}
?>

Analyse de fonction:

  • $ DocumentRoot : Il s'agit de l'élément de configuration le plus critique et doit être cohérent avec les paramètres racine du document réel de votre serveur Web (tels qu'Apache ou Nginx).
  • $ Domain : Obtenez dynamiquement le nom de domaine actuellement demandé via $ _server ['http_host']. Cela rend la fonction plus polyvalente, mais sachez que dans certaines configurations de serveurs complexes, des configurations de domaine plus précises peuvent être nécessaires.
  • $ Protocole : détecte dynamiquement si la demande actuelle est HTTP ou HTTPS pour s'assurer que l'URL générée utilise le protocole correct.
  • StrPos ($ AbsoluteFilePath, $ documentroot) === 0 : Vérifiez si le chemin dans la base de données commence par le répertoire racine du document que nous définissons. Il s'agit de la condition préalable pour assurer une conversion de chemin efficace.
  • substr ($ AbsoluteFilePath, strlen ($ documentroot)) : Si le chemin correspond, la partie après l'interception du répertoire racine du document et le chemin du fichier par rapport au répertoire de racine Web est obtenu.
  • Filter_Var ($ AbsoluteFilePath, filter_validate_url) : Il s'agit d'un chèque supplémentaire pour déterminer si le nouveau $ AbsoluteFilePath est lui-même une URL valide. Cela peut gérer les cas où différents types de chemins peuvent être stockés dans la base de données.

Exemple complet: afficher le lien audio clickable dans la table HTML

Maintenant, nous intégrons la fonction FilePathTourl ci-dessus dans un script PHP complet pour interroger les données et afficher des liens audio cliquables dans les tables HTML.

 

<adal>
    <meta charset="utf-8">
    <meta name="Viewport" content="width = Device-width, initial-scale = 1.0">
    <title> Liste des fichiers audio du dictionnaire 
    <style>
        tableau {
            Largeur: 80%;
            Border-Collapse: s&#39;effondrer;
            marge: 20px automatique;
        }
        th, td {
            Border: 1px solide #ddd;
            rembourrage: 8px;
            Texte-aligne: gauche;
        }
        ème {
            Color d&#39;arrière-plan: # f2f2f2;
        }
        un {
            Couleur: # 007BFF;
            Décoration du texte: aucune;
        }
        A: Hover {
            Décoration du texte: soulignement;
        }
    </ style>
</ head>
<body>

<h1> Liste d&#39;audio du dictionnaire 

<? Php
// Paramètre de connexion de la base de données $ servername = "localhost";
$ username = "your_username"; // Remplacez par votre nom d&#39;utilisateur de base de données $ mot de passe = "votre_password"; // Remplacez par votre mot de passe de données $ dbname = "your_database"; // Remplacez par votre nom de base de données // Créez une connexion de base de données $ Conn = mysqli_connect ($ servername, $ username, $ mot de passe, $ dbname);

// Vérifiez la connexion si (! $ Conn) {
    Die ("Connection a échoué:". MySqli_Connect_Error ());
}

/ **
 * Convertissez le chemin absolu du système de fichiers serveur en une URL accessible au Web.
 * Veuillez modifier $ DocumentRoot et $ Domain en fonction de la configuration de votre serveur.
 * /
fonction filepathTourl ($ absolueFilePath) {
    // !!! Important: veuillez modifier les deux constantes ou variables suivantes en fonction de la configuration de votre serveur !!!
    $ documentroot = "/ var / www / site Web"; // Le répertoire racine de votre document de serveur Web, par exemple / var / www / html
    // Dans les environnements de production, une configuration de nom de domaine plus rigoureuse peut être requise, telle que la lecture $ domain à partir de fichiers de configuration = $ _Server [&#39;http_host&#39;]; 

    $ protocole = isset ($ _ serveur [&#39;https&#39;]) && $ _server [&#39;https&#39;] === &#39;on&#39;? "https": "http";

    if (strPos ($ absoluFilePath, $ documentroot) === 0) {
        $ relativePath = substr ($ AbsoluteFilePath, strlen ($ documentroot));
        Retour $ Protocole. ": //". $ Domaine. $ relativePath;
    } autre {
        if (filter_var ($ AbsoluteFilePath, filter_validate_url)) {
            retour $ AbsoluteFilepath;
        }
        retourner "# invalid-path"; // Renvoie un espace réservé ou une indication d&#39;erreur}
}

$ SQL = "SELECT ID, Word, Audio From Dictionary";
$ result = mysqli_query ($ Conn, $ sql);

if (mysqli_num_rows ($ result)> 0) {
    Echo "<Bile>";
    echo "<thead> <tr> <th> id  <th> word  <th> audio   ";
    écho "<Tbody>";
    // Sortie de chaque ligne de données while ($ row = mysqli_fetch_assoc ($ result)) {
        $ Audiourl = filepathTourl ($ row ["Audio"]);
        écho "<tr>";
        Echo "<Td>". htmlSpecialChars ($ row ["id"]). "";
        Echo "<Td>". htmlSpecialChars ($ row ["word"]). "";
        écho "<td>";
        // Vérifiez si l&#39;URL est valable pour éviter de générer des liens non valides if ($ Audiourl! == "# invalid-path") {
            echo "<a href = &#39;". htmlSpecialChars ($ Audiourl). "&#39;Target =&#39; _ Blank &#39;> Cliquez pour lire audio </style>
</title></adal>
"; } autre { écho "chemin audio non valide"; } echo ""; echo ""; } echo ""; echo "table>"; } autre { Echo "

0 Résultats

"; } // Fermez la connexion de la base de données mysqli_close ($ Conn); ?>

Description du code:

  • Connexion de la base de données: utilisez MySQLI_Connect pour établir une connexion à la base de données MySQL. Assurez-vous de remplacer votre_username, votre_password, votre_database pour vos informations réelles.
  • Fonction FilePathTourl: Comme mentionné précédemment, utilisé pour convertir le chemin absolu du serveur en URL Web.
  • Structure de la table HTML: Les données sont organisées en une table HTML, y compris trois colonnes: ID, Word et Audio Link, ce qui améliore la lisibilité.
  • htmlSpecialChars (): utilisé pour échapper à la sortie du contenu en HTML pour éviter les attaques de scripts inter-sites (XSS). Il s'agit d'une pratique de sécurité importante.
  • Target = '_ Blank': permet d'ouvrir le fichier audio dans la nouvelle page d'onglet lors de la cliquetis sur le lien, empêchant l'utilisateur de quitter la page actuelle.
  • Gestion des erreurs: si FilePathTourl renvoie # invalid-path, "un chemin audio non valide" s'affiche au lieu de générer un lien d'erreur.

Meilleures pratiques et précautions

  1. Configurez dynamiquement DocumentRoot et domaine:
    • $ DocumentRoot: Évitez le code dur dans le code. La meilleure pratique consiste à le définir comme une constante PHP ou à lire à partir d'un fichier de configuration tel que config.php pour une migration et une maintenance de l'environnement facile. Par exemple: définir ('document_root', '/ var / www / site Web');
    • $ Domain: Bien que $ _Server ['http_host'] soit le plus efficace, il peut ne pas toujours renvoyer le nom de domaine attendu dans un environnement de proxy équilibré, CDN ou inversé. Un moyen plus robuste consiste également à le configurer comme une constante.
  2. Considérations de sécurité:
    • Vérification d'entrée: si le chemin du fichier est téléchargé par l'utilisateur ou contrôlé par l'utilisateur, assurez-vous de le vérifier et de le nettoyer strictement pour empêcher les attaques de traversée de chemin ou d'autres opérations de système de fichiers.
    • Autorisations de fichiers: assurez-vous que le processus du serveur Web a la permission d'accéder à ces fichiers, mais ne donnez pas les autorisations trop élevées.
    • htmlSpecialChars (): utilisez toujours cette fonction pour toute entrée de contenu de la base de données ou de l'utilisateur qui sera sortie en HTML pour empêcher les attaques XSS.
  3. Politique de gestion du chemin:
    • Format de stockage unifié: essayez de stocker des chemins de fichier dans la base de données dans un format unifié, tels que tous stockés en tant que chemins absolus de serveur, ou tous stockés sous forme de chemins de données Web (par rapport au répertoire root du site Web). Cela simplifie la logique de la fonction filepathtourl.
    • Téléchargement de fichiers: s'il implique le téléchargement de fichiers, il peut être plus facile de stocker le chemin relatif du fichier (par rapport au répertoire de racine Web) dans la base de données après le téléchargement, afin qu'il n'y ait pas besoin d'une conversion de chemin compliquée.
  4. Optimisation de l'expérience utilisateur:
    • Texte du lien: utilisez un texte de lien plus descriptif, tel que "play [word] audio" au lieu du simple "cliquez pour lire audio".
    • Play directe: Pour les fichiers audio, envisagez d'utiliser la balise

Résumer

Grâce à ce tutoriel, nous avons appris à convertir dynamiquement des chemins de fichier stockés dans une base de données en liens accessibles au Web à l'aide de PHP et MySQL. La clé consiste à comprendre les différences entre le chemin du système de fichiers du serveur et l'URL Web et d'implémenter une fonction de transformation robuste. En combinant les balises HTML et la sécurité et les meilleures pratiques appropriées, nous pouvons afficher efficacement les ressources de fichiers clickables sur les pages Web, améliorant ainsi l'interactivité et la fonctionnalité des applications Web. N'oubliez pas que la configuration correcte du répertoire racine du document et le nom de domaine est la base de l'implémentation de cette fonction.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ajouter une icône à l'onglet Titre de votre site Web dans HTML Comment ajouter une icône à l'onglet Titre de votre site Web dans HTML Aug 07, 2025 pm 11:30 PM

Pour ajouter une icône à la barre de titre du site Web, vous devez lier un fichier Favicon dans une partie du HTML. Les étapes spécifiques sont les suivantes: 1. Préparez un fichier d'icône 16x16 ou 32x32 pixels. Il est recommandé d'utiliser Favicon.ico pour le nommer et le placer dans le répertoire racine du site Web, ou utiliser des formats modernes tels que PNG et SVG; 2. Ajouter des balises de liaison à HTML, telles que les formats PNG ou SVG, ajustez l'attribut de type en conséquence; 3. Ajouter éventuellement des icônes haute résolution pour les appareils mobiles, tels que AppletouCon, et spécifiez différentes tailles via l'attribut de tailles; 4. Suivez les meilleures pratiques, placez l'icône dans le répertoire racine pour assurer la détection automatique, effacer le cache du navigateur après la mise à jour et vérifier l'exactitude du chemin du fichier.

Utilisation de types HTML «Entrée» pour les données utilisateur Utilisation de types HTML «Entrée» pour les données utilisateur Aug 03, 2025 am 11:07 AM

Le choix du bon type HTMLinput peut améliorer la précision des données, améliorer l'expérience utilisateur et améliorer la convivialité. 1. Sélectionnez les types d'entrée correspondants en fonction du type de données, tels que le texte, le courrier électronique, le tel, le numéro et la date, qui peuvent vérifier automatiquement la somme de la somme et l'adaptation au clavier; 2. Utilisez HTML5 pour ajouter de nouveaux types tels que l'URL, la couleur, la plage et la recherche, qui peuvent fournir une méthode d'interaction plus intuitive; 3. Utilisez l'espace réservé et les attributs requis pour améliorer l'efficacité et la précision du remplissage des formulaires, mais il convient de noter que l'espace réservé ne peut pas remplacer l'étiquette.

Comment créer un champ de saisie de recherche dans un formulaire HTML Comment créer un champ de saisie de recherche dans un formulaire HTML Aug 02, 2025 pm 04:44 PM

UsetheelementwithinatagtocreatEasanticsearchField.2. y comprisaForAccesssibility, settheform'sactionandMethod = "get" attributestosenddatatoesearchndpointwithAsharableArl.3.Addname = "Q" todefinetheQueryParameter, usePlaceHolderToguiseUd

Pourquoi mon image HTML n'apparaît-elle pas? Pourquoi mon image HTML n'apparaît-elle pas? Aug 16, 2025 am 10:08 AM

Tout d'abord, vérifiez si le chemin d'attribut SRC est correct et assurez-vous que le chemin relatif ou absolu correspond à l'emplacement du fichier HTML; 2. Vérifiez si le nom de fichier et l'extension sont correctement orthographiés et sensibles à la casse; 3. Confirmez que le fichier image existe réellement dans le répertoire spécifié; 4. Utilisez les attributs ALT appropriés et assurez-vous que le format d'image est .jpg, .png, .gif ou .webp largement pris en charge par le navigateur; 5. Dépannage des problèmes de cache du navigateur, essayez de forcer la rafraîchissement ou d'accès directement à l'URL de l'image; 6. Vérifiez les paramètres d'autorisation du serveur pour vous assurer que le fichier peut être lu et non bloqué; 7. Vérifiez que la syntaxe de balise IMG est correcte, y compris les devis et les bons d'attribut corrects, et enfin dépanner les erreurs 404 ou les problèmes de syntaxe via l'outil de développeur du navigateur pour s'assurer que l'image est affichée normalement.

Comment utiliser la balise ABBR HTML pour les abréviations Comment utiliser la balise ABBR HTML pour les abréviations Aug 05, 2025 pm 12:54 PM

L'utilisation de balises HTML peut améliorer l'accessibilité et la clarté du contenu; 1. Mark Abréviations ou acronymes avec abréviations; 2. Ajouter des attributs de titre à des abréviations inhabituelles pour fournir une explication complète; 3. Utiliser lorsque le document apparaît pour la première fois, en évitant les annotations en double; 4. Vous pouvez personnaliser le style via CSS, et le navigateur par défaut affiche généralement des soulignements pointillés; 5. Il aide à dépister les utilisateurs du lecteur à comprendre les termes et à améliorer l'expérience utilisateur.

Comment ajouter une icône à un bouton de HTML Comment ajouter une icône à un bouton de HTML Aug 07, 2025 pm 11:09 PM

L'utilisation de Fontawesome peut rapidement ajouter des icônes en introduisant CDN et en ajoutant des classes d'icônes à des boutons, tels que comme; 2. À l'aide d'étiquettes pour intégrer des icônes personnalisées dans les boutons, le chemin et la taille corrects doivent être spécifiés; 3. ENCHETER CODE SVG directement pour obtenir des icônes haute résolution et les garder cohérents avec la couleur du texte; 4. L'espacement doit être ajouté via CSS et ARIA-LABEL doit être ajouté aux boutons de l'icône pour améliorer l'accessibilité; En résumé, Fontawesome convient le plus aux icônes standard, les images conviennent aux conceptions personnalisées, tandis que SVG offre la meilleure mise à l'échelle et le meilleur contrôle, et les méthodes doivent être sélectionnées en fonction des besoins du projet. Fontawesome est généralement recommandé.

Comment créer un bouton de soumission qui envoie des données de formulaire dans HTML Comment créer un bouton de soumission qui envoie des données de formulaire dans HTML Aug 02, 2025 pm 04:46 PM

Utilisez des éléments et définissez les attributs d'action et de méthode pour spécifier l'adresse et la méthode de soumission des données; 2. Ajouter des champs d'entrée avec l'attribut de nom pour vous assurer que les données peuvent être reconnues par le serveur; 3. Utiliser ou créer un bouton de soumission, et après avoir cliqué, le navigateur enverra les données de formulaire à l'URL spécifiée, qui sera traitée par le backend pour terminer la soumission des données.

Quel est l'attribut novalidate pour un formulaire HTML Quel est l'attribut novalidate pour un formulaire HTML Aug 02, 2025 pm 03:12 PM

L'attribut Novalidate est utilisé pour désactiver la vérification du formulaire par défaut du navigateur; 1. Après avoir ajouté Novalidate, le navigateur n'effectuera pas la vérification par défaut même si le champ de saisie contient des contraintes telles que requise, modèle, min, max, etc.; 2. Le formulaire ignorera si l'entrée est valide et soumise directement, ce qui convient à la vérification personnalisée en utilisant JavaScript, des formulaires en plusieurs étapes ou une vérification de contournement temporaire à l'étape de test de développement; 3. Il s'agit d'une propriété booléenne qui ne nécessite pas d'attribution et agit sur l'ensemble du formulaire; 4. Retirez Novalidate pour restaurer le comportement de vérification normal du navigateur; Par conséquent, Novalidate permet aux développeurs de contrôler indépendamment le calendrier et la méthode de vérification de la forme.

See all articles