ajouter un code avant un string dans toute ma base

WRInaute occasionnel
Bonjour,
Je voudrais savoir s'il est possible de rajouter un code php avant un morceau de texte qui se trouve à l'interieur d'un champs de base de donnée. Je m'explique :
Je possede des articles, l'intro de chaque article contient un lien à la fin du genre

Code:
"montext intro ...<a href="lire.php...."

Je veux restreindre la lecture aux abonnés , j'ai pensé faire

Code:
"montext intro ...if ($user->guest) {echo 'veuillez vous connecter'; } else {echo ' <a href="lire.php....'; }


J'ai pensé à utiliser les regex pour faire ce remplacement, mais je ne sais pas comment proceder vraiment.
J'ai aussi pensé à inserer le code php directement ou le texte est stocké dans ma base et utiliser la fonction eval () pour faire ressortir le code mais cela ne marche pas.
Auriez vous une piste ?
Merci par avance
Hanlin
 
WRInaute discret
Bonjour,
Techniquement, c'est jouable ... par contre c'est pas propre d'ajouter du php avec les données :D
Pour filtrer la lecture des articles, je te conseille la technique suivante :
1. Ajouter un champs dans la DB sur les articles,
ISPublic qui prend une valeur de 0 ou 1

2. Dans le code PHP affichant les articles, lorsque l'article est réservé aux abonnés
Si une session d'abonné est ouverte => affiche l'article
Sinon redirection vers une page de login.

C'est beaucoup plus simple pour la maintenance du texte des articles et du code PHP.
 
WRInaute occasionnel
salut,
il y a environ 50 000 messages dans cette base. J'ai pensé faire une requete et scraper le lien en question, l'ajouter dans un champs....apres j'ai opté pour la solution suivante. Sur ma page qui affiche les intros, j'ai fait un :
Code:
$desc2=preg_replace('/<a.*?<\/a>/', '',$mydesc);
ceci a enlevé le lien de ma description...
Apres il ne me reste plus qu'a l'extraire de mon intro faire "<br>" et appliquer ma condition.

Avec ça je ne modifie pas la base, qu'est ce que vous en pensez ?
 
Discussions similaires
Haut