Trouver un lien dans un fichier
Arbitta
Messages postés
84
Statut
Membre
-
Pitet Messages postés 2845 Statut Membre -
Pitet Messages postés 2845 Statut Membre -
Bonjour,
j'ai un fichier text "fich.txt" qui contient un code source simple d'une page html
je veux insérer ses liens dans un autre fichier . J'ai essayé ce code mais il ne m'insère que le dernier lien.
Je veux insérer dans mon nouveau fichier lien.txt seulement les noms du lien et non pas tout le code (<a href="..."></a>) :
lien1
lien2
lien3
lien4
Pouvez vous m'aidez s'il vous plait :)
merci
j'ai un fichier text "fich.txt" qui contient un code source simple d'une page html
<html> <body> <p> <a href="lien1"> </a> <a href="lien2"> </a> <a href="lien3"> </a> <a href="lien4"> </a> </p> </body> </html>
je veux insérer ses liens dans un autre fichier . J'ai essayé ce code mais il ne m'insère que le dernier lien.
<?php
$fp=fopen("fich.txt","r+");
$finlink="<a";
$position=array();
$i=0;
while (!feof($fp)) {
$cont=fgets($fp,1024);
$i++;
if (strstr($cont,$findlink))
{
echo ("la position du lien est : ".$i."<br>");
if ( preg_match( '@href="([^"]+)"@' , $cont, $match ) )
{
$alt = array_pop($match);
echo ("votre lien est <br> ".$href."<br>");
$fln=fopen("lien.txt","w");
fwrite ($fln,$cont);
fwrite($fln,"\r\n");
}}}
fclose($fp);
fclose($fln);
?>
Je veux insérer dans mon nouveau fichier lien.txt seulement les noms du lien et non pas tout le code (<a href="..."></a>) :
lien1
lien2
lien3
lien4
Pouvez vous m'aidez s'il vous plait :)
merci
A voir également:
- Trouver un lien dans un fichier
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Créer un lien pour partager des photos - Guide
- Lien url - Guide
2 réponses
Bonjour, je ne fais pas de PHP, mais j'aurais tendance à utiliser une regex pour trouver les liens
https://www.commentcamarche.net/contents/803-php-expressions-regulieres
https://www.commentcamarche.net/contents/803-php-expressions-regulieres
Salut,
Une solution plus simple avec la classe DOMDocument :
Utilise la méthode loadHTMLFile() à la place de loadHTML() pour charger le html depuis un fichier.
Bonne journée
Une solution plus simple avec la classe DOMDocument :
$liens = array();
$doc = new DOMDocument();
$doc->loadHTML('<html>
<body>
<p>
<a href="lien1"> </a>
<a href="lien2"> </a>
<a href="lien3"> </a>
<a href="lien4"> </a>
</p>
</body>
</html>');
$ancres = $doc->getElementsByTagName('a');
foreach ($ancres as $ancre) {
$liens[] = $ancre->getAttribute('href');
}
var_dump($liens); // array(4) { [0]=> string(5) "lien1" [1]=> string(5) "lien2" [2]=> string(5) "lien3" [3]=> string(5) "lien4" }
Utilise la méthode loadHTMLFile() à la place de loadHTML() pour charger le html depuis un fichier.
Bonne journée