REGEX : je m'arrache les cheveux...
5 messages
• Page 1 sur 1
-

erestrebian - WRInaute occasionnel

- Messages: 472
- Inscription: 15 Juin 2007
REGEX : je m'arrache les cheveux...
Bonjour,
Je suis en train de passer un site de joomla vers un truc fait maison parce que joomla est un peu trop rigide à mon goût malgré les millions de modules, plugins, templates....
Les liens dans la base de données sont du type :
et je veux avoir des liens du style
J'ai donc crée une fonction pour faire le travail parce que je suis un gros fainéant et que je voulais pas tout faire à la main (mais finalement, je me demande si ça ne m'aurait pas pris moins de temps)...
Voici ce que j'ai sorti de ma petite tête...
Cela marche pour le lien donné au dessus mais pas pour celui-ci :
Merci pour tous les commentaires qui pourraient me mettre sur la piste de l'origine de ce dysfonctionnement que je commence à considérer comme magique malgré mon esprit cartésien...
Je suis en train de passer un site de joomla vers un truc fait maison parce que joomla est un peu trop rigide à mon goût malgré les millions de modules, plugins, templates....
Les liens dans la base de données sont du type :
- Code: Tout sélectionner
<a href="index.php?option=com_content&view=article&id=71:la-cellule-phtovoltaique&catid=47:fonctionnement-solaire&Itemid=64">photovoltaïques</a>
et je veux avoir des liens du style
- Code: Tout sélectionner
<a href="/solaire/fonctionnement/71-la-cellule-phtovoltaique.html">photovoltaïques</a>
J'ai donc crée une fonction pour faire le travail parce que je suis un gros fainéant et que je voulais pas tout faire à la main (mais finalement, je me demande si ça ne m'aurait pas pris moins de temps)...
Voici ce que j'ai sorti de ma petite tête...
- Code: Tout sélectionner
<?php
error_reporting(E_ALL);
session_start();
require_once('*****.php5'); //script d'appel de la base
$sql_article = "SELECT id, introtext
FROM `article`
GROUP BY id
ORDER BY `id` DESC
LIMIT 0 , 10";
$articles = mysql_query ($sql_article);
function renomme($match)
{
list($_unused, $lamerde, $idart, $lamerde2, $texte) = $match;
$sql_lien = "SELECT a.id, a.alias as aalias, t.alias as talias, c.alias as calias
FROM `article` a, themes t, categories c
WHERE t.id = a.sectionid
AND c.id = a.catid
AND a.id = " . $idart . "
GROUP BY a.id";
$liens = mysql_query ($sql_lien);
$lien = mysql_fetch_assoc($liens);
return '<a href="'.$lien['talias'].'/'.$lien['calias'].'/'.$lien['id'].'-'.$lien['aalias'].'.html">'.$texte.'</a>';
}
while ($article=mysql_fetch_assoc($articles))
{
$article['introtext'] = preg_replace_callback('#<a href="index\.php\?(.*)&id=(\d+):(.*)">(.*)</a>#', 'renomme', $article['introtext']);
echo utf8_decode($article['introtext']);
}
?>
Cela marche pour le lien donné au dessus mais pas pour celui-ci :
- Code: Tout sélectionner
<a href="index.php?option=com_content&view=article&id=145:le-bois&catid=68:biomasse&Itemid=84">bois</a>
Merci pour tous les commentaires qui pourraient me mettre sur la piste de l'origine de ce dysfonctionnement que je commence à considérer comme magique malgré mon esprit cartésien...
-

erestrebian - WRInaute occasionnel

- Messages: 472
- Inscription: 15 Juin 2007
Re: REGEX : je m'arrache les cheveux...
En fait, il ne considère que le &id=(\d+) du lien suivant (qui est le dernier si cela peut avoir une quelconque influence)... Je ne sais pas si c'est clair mais disons que dans l'analyse de l'expression rationnelle, il ne "s'arrête" pas sur le lien qui concerne le bois. La fonction s'exécute donc mais avec un $idart qui est une chaîne...
J'ai essayé de délimiter l'expression avec des ^ et des $ mais dans ce cas-là, rien ne fonctionne...
Merci pour ton aide.
J'ai essayé de délimiter l'expression avec des ^ et des $ mais dans ce cas-là, rien ne fonctionne...
Merci pour ton aide.
-

erestrebian - WRInaute occasionnel

- Messages: 472
- Inscription: 15 Juin 2007
Re: REGEX : je m'arrache les cheveux...
merci, l'erreur fut différente mais cela (ajouter au repas) m'a mis sur la piste d'une erreur dans la base de données... les sectionid n'existaient plus dans la base theme...
encore merci et désolé du dérangement...
encore merci et désolé du dérangement...
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Arrache de cheveux cause css et mozilla
- [Regex] modifier une regex existante
- Arrachage de cheveux
- Migration vers WP (Tirage de cheveux)
- un newbee s'arrache les cheveux
- URL Rewriting arachage de cheveux
- 302 : je m'arrache les cheveux
- échange de lien thématique extension de cheveux
- Probleme d'affichage sous IE :'( ( première perte de cheveux)
- .htaccess domaine dynamiques à s'arracher les cheveux
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

