Information:
Dates
- Publish : : Thursday 30 december 2021
- 197 views
Share :
Bonjour,
J'ai écris 2,3 fonctions PHP pour récupérer et pouvoir linker les pages FaceBook de mes publications.
Je récupére les archives de mon compte personnel FaceBook O-Romain Jaillet-ramey (Kss Operating Society Solar) sur cette page : Paramètres > télécharger vos informations personnelles sur cette page en JSON.
Ici, je parse les liens web ou les adresses emails.
Script avec 12 lignes
001<?php 002function link2href($desc) { 003 004 $desc = preg_replace("#[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]#",'<a href="$0">$0</a>', $desc); 005 $desc = preg_replace("#(^| )(www([.]?[a-zA-Z0-9_/-])*)#", "$1<a href="http://$2">$2</a>", $desc); 006 $desc = preg_replace("#[A-Za-z0-9.|-|_]*[@]{1}[A-Za-z0-9.|-|_]*[.]{1}[a-z]{2,5}#", replace_mail('$0'), $desc); 007 $desc = str_replace("&", "&", $desc); 008 //$desc = utf8_encode($desc); 009 010 return $desc; 011} 012?>
Dans la function link2href
il faut changer :
- $0
par {content_text}
,
- $1
par ,
- $2
par .
NdM : j'ai une erreur dans (mon script) mon éditeur de contenu ZW3B:-:Engine my CMS qui me fait disparaître mes antislash dans les balises pre
;-)
Ici, je parse les hastag ou les pages facebook.
Script avec 11 lignes
001<?php 002function link2facebookpage_hastag($desc) { 003 004 $desc = preg_replace('/(?<!=|\b|&)#([a-z0-9_ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]+)/is', ' <a href="https://www.facebook.com/hashtag/$1" title="FB Hastag : $1" onclick="window.open(this.href); return false;">#$1</a> ', $desc); 005 $desc = preg_replace('/(?<!=|\b|&)\@\[([a-z0-9]+)+([:]{1})+([0-9]{2,4})+([:]{1})+([^]]+)\]/is', '<a href="https://www.facebook.com/$1" title="FB Page : $5" onclick="window.open(this.href); return false;">$5</a>', $desc); 006 007 //$desc = utf8_encode($desc); 008 009 return $desc; 010} 011?>
Dans cet exemple on transforme le l'arobase des adresses mails.
Script avec 16 lignes
001<?php 002function replace_mail($email) { 003 004 $codes[0000] = '/@/'; 005 $codes[0001] = '/./'; 006 $replace[0000] = ' (at) '; 007 $replace[0001] = ' (dot) '; 008 009 $transform = preg_replace($codes, $replace, $email); 010 011 // on creait le lien ou non 012 //$transform = '<a href="mailto:'.mailto($email).'">'.$transform.'</a>'; 013 014 return $transform; 015} 016?>
Encodage de l'email :
Script avec 12 lignes
001<?php 002function mailto($email) { 003 004 $encoded = bin2hex("".$email.""); 005 $encoded = chunk_split($encoded, 2, '%'); 006 $encoded = '%' . substr($encoded, 0, strlen($encoded) - 1); 007 008 $mail = $encoded; 009 010 return $mail; 011} 012?>
Exemple d'appel :
Script avec 10 lignes
001<?php 002$text_default = 'Ci-dessous des fonctions #PHP pour parser les liens Web https://www.zw3b.fr et les adresses email@domain.tld ;) \n\nCordialement,\nRomain (@[1514534735466599:274:LAB3W]) - Creator @[723926421024294:274:ZW3B].FR .TV .SITE .NET .BLOG\n\n'; 003 004$text = link2facebookpage_hastag(link2href($text_default)); 005 006$text = nl2br($text); 007 008 009echo $text; 010?>
Si cela peut servir à quelqu'un.
Romain
-
PHP.Net : Fonction
preg_replace
- Rechercher et remplacer par expression rationnelle standard - PHP.Net : Fonction
nl2br
- Insère un retour à la ligne HTML à chaque nouvelle ligne