[PHP] Expréssion regulière
Résolu
coccoweb
Messages postés
141
Date d'inscription
Statut
Membre
Dernière intervention
-
coccoweb Messages postés 141 Date d'inscription Statut Membre Dernière intervention -
coccoweb Messages postés 141 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche une solution pour extraire de mon url des informations
J'indique ici les information que je souhaite récupérer en gras.
La partie souligné correspond a une information inutile au script.
La partie en gras change continuellement
Voici une url :
http://mon-super-site.fr/forum-aero-debutant-13.htm
Je cherche une solution pour extraire de mon url des informations
J'indique ici les information que je souhaite récupérer en gras.
La partie souligné correspond a une information inutile au script.
La partie en gras change continuellement
Voici une url :
http://mon-super-site.fr/forum-aero-debutant-13.htm
<?php function test($chaine){ $chaine=str_replace($_SERVER['HTTP_HOST'].'/','', $chaine); $chaine=str_replace('/','', $chaine); $chaine=str_replace('.htm','', $chaine); /* A partir d'ici il reste forum-aero-debutant-13 return $chaine; } $chaine = $_SERVER['REQUEST_URI']; echo test($chaine); ?>
A voir également:
- [PHP] Expréssion regulière
- Easy php - Télécharger - Divers Web & Internet
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
4 réponses
et pour récupérer forum seul et le numérique qui peut se prolonger comme suit 13-1-15879 ?
En réalité forum reste toujours un mot unique qui pourrai s'appeler topic ou encore article
aero-debutant est lui change constamment et le numérique lui peut prendre une ampleurs comme 13-1-15879
En réalité forum reste toujours un mot unique qui pourrai s'appeler topic ou encore article
aero-debutant est lui change constamment et le numérique lui peut prendre une ampleurs comme 13-1-15879
Pour récupérér le "forum" ou "topic" ou autre, du moment qu'il appart en premier dans ta chaîne de caractères, alors tu peux le récupérer facilement car il est contenu dans $chaine[0] c'est à dire dans le premier enregistrement du tableau retourné par la fonction explode('-', $chaine).
Pour le numérique tu peux toujours faire une recherche avec la fonction is_numeric sur chacune des entrées du tableau $chaine
Cordialement,
Pour le numérique tu peux toujours faire une recherche avec la fonction is_numeric sur chacune des entrées du tableau $chaine
Cordialement,
Voilà bas un grand merci a tout ceux qui mon aidé
Juste parce que je suis reglo et que la fonction créé est utile a tous la voila :
Cette fonction génère la description de chaque page.
Voilà une bonne prise de tête et les résultats.
Encore merci.
Juste parce que je suis reglo et que la fonction créé est utile a tous la voila :
Cette fonction génère la description de chaque page.
<?php // exploser la chaine et un tableau (array) function exploserChaine( $chaine ) { /* Explose une chaîne de caractère suivant pour en faire un tableau de mots clés */ $to = '-'; $from = ' '; $chaine = strtr( $chaine, $to, $from ); // On remplace les caractères $to par des espaces $tabTemp = explode( ' ', $chaine ); // On explose la chaîne dans un tableau temporaire suivant le délimiteur espace foreach( $tabTemp as $k => $v ) { if( $v != NULL ) // Pour éviter d'avoir des entrées vides { if( preg_match( '#(.*){1}(\')#', $v, $matches ) ) // On cherche un caractère suivi d'une apostrophe ( pour les mots du genre : d'autres ) { $v = substr( $v, 2 ); // Si trouvé on élimine le caractère et l'apostrophe } $tabChaine[] = $v; // On ajoute le mot au tableau final } } return $tabChaine; } function meta_description($chaine) { // ici on nettoie pour récupérer se qui nous intéresse. $chaine=str_replace('http:','', $_SERVER['REQUEST_URI']); $chaine=str_replace($_SERVER['HTTP_HOST'],'', $chaine); $chaine=str_replace('/','', $chaine); $chaine=str_replace('.htm','', $chaine); /* A partir d'ici il reste forum-aero-debutant-13 On explose la chaine histoire de tout mettre dans un tableau */ $chaine=exploserChaine($chaine); // Cette partie va créé un autre tableau uniquement numérique $c=0; foreach ($chaine as $element) { if (is_numeric($element)) { $id_post[$c]=$element; $c++; } } // Cette partie concerne le site switch($chaine[0]) { // La page fais partie du forum case "forum": if (isSet($id_post)) { // Si $id_post existe c'est que la page contient une valeur numérique $req = mysql_query("SELECT forum_name, forum_desc FROM 'OS_forum_forum' WHERE 'forum_id' =".$id_post[0]." LIMIT 0 , 1"); $data=mysql_fetch_assoc($req); // Cette astuce si permet de supprimer le BBcode appelé chez moi xCode $desc = preg_replace('#\[(.*)\](.*)\[(.*)\]#U', '$2', $data['forum_desc']); // Maintenant il est utile de supprimer les espaces inutile. $chaine = trim("Forum : ".$data['forum_name']." ".$desc); // La description meta contient max. 200 caractères. On coupe se qui depasse if (strlen($chaine) > 200) { $chaine = substr($chaine, 0, 200); $last_space = strrpos($chaine, " "); $chaine = substr($chaine, 0, $last_space)."..."; } return $chaine; } else { // Si id_post n'existe pas, c'est que nous somme dans l'index du forum return "Forum dédié à l'aeromodelimse, l'entraide d'utilisateur d'hélicopter radio commandé (RC)."; } break; case "topic": // Idem pour les topics, grace aux jointure mySQL $req = mysql_query("SELECT 'topic_titre' , 'post_texte' FROM 'OS_forum_topic' LEFT JOIN 'OS_forum_post' ON 'OS_forum_post'.'post_id' = 'OS_forum_topic'.'topic_first_post' WHERE 'OS_forum_topic'.'topic_id' =".$id_post[0]." LIMIT 0 , 1"); $data = mysql_fetch_assoc($req); $post = preg_replace('#\[(.*)\](.*)\[(.*)\]#U', '$2', $data['post_texte']); $chaine = trim("Portail : ".$data['topic_titre']." ".trim($post)); if (strlen($chaine) > 200) { $chaine = substr($chaine, 0, 200); $last_space = strrpos($chaine, " "); $chaine = substr($chaine, 0, $last_space)."..."; } return $chaine; break; /* C'est super tout ca, mais les pages statiques ? Et bien on les identifie par la valeur du tableau */ case "inscription": return "Page d'inscription au Club d'aéromodélisme de Charleroi, région Dampremy. Entraide des modélistes. Participer au forum et discuter avec d'autres amateurs et profésionnels."; break; case "connection": return "Page de connection au Club d'aéromodélisme de Charleroi, région Dampremy. Connectez-vous au monde du modélisme."; break; case "a_propos_de_RC_Charleroi_Dampremy_aero_modelisme": return "A propos du Club d'aéromodélisme de Charleroi, région Dampremy. Tout se qu'il est bon de savoir sur nos motivations. Sortez donc de chez vous et venez nous rejoindre."; break; /* En cas d'oublie, la roue de secours est aussi utile et hop une entre par defaut */ default: return "Club d'aéromodélisme de Charleroi, région Dampremy. Libre d'accès pour tous. Possibilité de vol intérieurs, organisation privé"; break; } } ?>
Voilà une bonne prise de tête et les résultats.
Encore merci.