Aller au contenu

moulinette php/mysql/ projet pour inpact ??? help


Dark26

Messages recommandés

après une (bonne ) idée dans le forum idée, il m'ai venu une bonne idée de script qui devrait pourvoir servir à beaucoup de chose, peut être dur à mettre en place masi bon faut essayer.....

en gros : une base de données dictionnaire :

champ1 : mot ; champ 2: définition ou lien hypertext vers un site

exemple champ 1 : ASUS : Champ2 = ASUS

en gros on a une page web style :

............ASUS aime pas beaucoup microsoft.......

et une fois passé la page par cette moulinette

............ASUS aime pas beaucoup microsoft.......[/url]

ça parait simple à faire ( recherche de chaîne de caractère dans une boucle, c'est pas la mort)

2 boucle imbriquée , une sur le texte l'autre sur la base de données.

le problème c'est l'adaptation de ce bout de script dans une page web...

comment faire :roll:

si la page que l'on veut traiter s'appelle index.php

ce que l'on veut traiter , c'est le résiltat de la page php ( le code html en fait) et pas le code source de la page php :fou:

et donc il faudrait que l'on puisse dans la page php index.php

<php

bout de script

?>

<php

la page php

?>

<php

bout de script

?>

et que ça donne le résultat esconté en une fois :yes::yes:

en gros il faut injecté le résulat de la page php directement dans la moulinette....

:mdr:

des idées???

j'avais pensé a des includes, mais on insère le code et pas le résultat...

Lien vers le commentaire
Partager sur d’autres sites

sinon peut être que comme ça c'est faisable :

www.toto.com/translate.php?page=index.php

ou translate est la page qui fait la conversion enytre le nom et les liens hypertext, et index.php est la page que l'on veut traiter....

mais comment faire pour utiliser le résulat de la pahe php, plutôt que le code source??

il faut exécuter le code dans le page translate ???

donc faire un truc style

php index.php > pageweb.html

Lien vers le commentaire
Partager sur d’autres sites

sa me parait pas mal, mais sa doit etre un peu chiant a la longue de voir tout plein de liens de partout non ? enfin bon c pas mon affaire  :D  

desoler mais je ne fais pas de php donc je peux pas te donner des conseils  :-D

c'ets acalir que ça risue de faire beaucoup de lien :D

bordel en théorie ça mrche mais impossible de faire marcher la base de donées alors que ça marchait avant :bravo::D

Lien vers le commentaire
Partager sur d’autres sites

voila le code si on l'insère dans une page web


<?php 



// Script made by DARK26 ( contact dark26@dark26.dynu.com)

// moulinette permettant de remplaçer des mots par des infos bulles ou des liens hypertexts automatiquement

// via une base de données en Mysql

if ($grosporc!= 1 ) {



$db = mysql_connect("localhost", "root","");

mysql_select_db("dico",$db);



 if ($QUERY_STRING=="") {

   $adress = "http://".$SERVER_NAME.$REQUEST_URI."?grosporc=1";

       	} else {

 $adress = "http://".$SERVER_NAME.$REQUEST_URI."&grosporc=1";

           }

//Fonction debuggage	

echo "$adress";



// on récupère le nom de l'adresse web 

$toto = implode("",file($adress));

//on découpe suivant le caractère <a pour les lien hypertext

$strResult = explode("<a",$toto);

 

// connexion base de données 

$db = mysql_connect("localhost", "root","");

mysql_select_db("dico",$db);



  $query = mysql_query("SELECT * FROM tableau",$db);

  while($row = mysql_fetch_array($query)) {

// si on a mis 0, c'est un lien hypertext, si on a mis 1 c'est une info bulle

if ($row[2]== 0) {

$replace= "<a href="$row[1]" target="_blank" Title="$row[1]">$row[0]</a>";

   }

   elseif  ($row[2]== 1) {

 $replace= "<a Title="$row[1]">$row[0]</a>";

}

// reinitialisation de la chaîne

$final='';

// on parcourt chaque petit bout de page web

foreach ( $strResult as $k => $v) {

// print $k." -> ".$v."<br />n"; //debuggage

// on découpe encore chaque petit bout de page web en mini bout de page web (lien hypertext et le reste)

$tata[$k] = explode ("a>", $v);

foreach ( $tata[$k] as $l => $m) {

//print $l." -> ".$m."<br />n"; //debuggage

// si lien hypertext

if ($l==0 ) {

// si chaine pas vide

if ($final !='') {$final=$final."<a".$m."a>";}

//si chaine vide

 else {$final=$m; }

 	} 

 	// si pas lien hypertext, alors on peut remplacer

else { $final = $final.str_replace("$row[0]","$replace",$m); }



}



}

// on recree le tableau de départ pour nouvelle itération

$strResult = explode("<a",$final);



}

// écriture de la page web

echo "$final";

exit;

}

?>

pour créer la base de données


# phpMyAdmin MySQL-Dump

# version 2.2.6

# http://phpwizard.net/phpMyAdmin/

# http://www.phpmyadmin.net/ (download page)

#

# Serveur: localhost

# Généré le : Lundi 29 Septembre 2003 à 18:02

# Version du serveur: 3.23.49

# Version de PHP: 4.2.0

# Base de données: `dico`

# --------------------------------------------------------



#

# Structure de la table `tableau`

#



DROP TABLE IF EXISTS `tableau`;

CREATE TABLE `tableau` (

 `name` text NOT NULL,

 `description` text NOT NULL,

 `affichage` int(11) NOT NULL default '0',

 `id` int(11) NOT NULL auto_increment,

 PRIMARY KEY  (`id`)

) TYPE=MyISAM;

ensuite le code pour utilisation de manière externe à la page web

on sert sert comme ça

ou aircooling.htm et le nom de la page web a ouvrir


<?php

//fichier dicfinal.php

// Script made by DARK26 ( contact dark26@dark26.dynu.com) 

// moulinette permettant de remplaçer des mots par des infos bulles ou des liens hypertexts automatiquement 

// via une base de données en Mysql





// on récupère le nom de l'adresse web 

$toto = implode("",file($p));

//on découpe suivant le caractère <a pour les lien hypertext

$strResult = explode("<a",$toto);

 

// connexion base de données 

$db = mysql_connect("localhost", "root","");

mysql_select_db("dico",$db);



  $query = mysql_query("SELECT * FROM tableau",$db);

  while($row = mysql_fetch_array($query)) {

// si on a mis 0, c'est un lien hypertext, si on a mis 1 c'est une info bulle

if ($row[2]== 0) {

$replace= "<a href="$row[1]" target="_blank" Title="$row[1]">$row[0]</a>";

   }

   elseif  ($row[2]== 1) {

 $replace= "<a Title="$row[1]">$row[0]</a>";

}

// reinitialisation de la chaîne

$final='';

// on parcourt chaque petit bout de page web

foreach ( $strResult as $k => $v) {

// print $k." -> ".$v."<br />n"; //debuggage

// on découpe encore chaque petit bout de page web en mini bout de page web (lien hypertext et le reste)

$tata[$k] = explode ("a>", $v);

foreach ( $tata[$k] as $l => $m) {

//print $l." -> ".$m."<br />n"; //debuggage

// si lien hypertext

if ($l==0 ) {

// si chaine pas vide

if ($final !='') {$final=$final."<a".$m."a>";}

//si chaine vide

 else {$final=$m; }

 	} 

 	// si pas lien hypertext, alors on peut remplacer

else { $final = $final.str_replace("$row[0]","$replace",$m); }





}



}

// on recree le tableau de départ pour nouvelle itération

$strResult = explode("<a",$final);



}

// écriture de la page web

echo "$final";



 ?>

attention si le script n'est pas dans le même répertoire que la page a afficher, alors tous les liens relatifs ne seront pas valides.

Edit : correction d'un bug que personne n'a vu

Lien vers le commentaire
Partager sur d’autres sites

Vu le nombre d'accès SQL que ça fait, je voudrait pas être à la place du serveur... Mais l'idée est bonne...

le nombre de rêquête sql???

une seulement par appel de page :mdr:

en fait la première boucle est la requête mysql, la deuxième, et la boucle sur la page ( donc pas de requête)

et si on veut, on peut aussi récupérer la page à la sortie du prog et l'enregistrer sous format html...

hélas comme ça c'est plus dynamique, :D et ça perd un peu de son intêret :non:

promis en test sur mon site web perso, dès que j'aurais accès à mes fichier :-D

et que j'aurais remplit la base de données :D

Lien vers le commentaire
Partager sur d’autres sites

Ben à chaque mots il faut qu'il voit si le mots est dans la base...

200000messages * 20mots par messages...

:mdr: tu as mal lu, c'est l'inverse :-D

à chaque mot de la base il regarde si il est dans la page

for i {

for j {

}}

on est d'accord qu'il y a plus de boucle j que de bouche i effectué ?? :mad2:

c'est clair que dans l'autre sens , à chaque mot de la page web, il faudrait une requête mysql

en gros c'ets une variable en mémoire ( la page web en fait) qui est tré sollicité, mais des calculs en mémoire c'est rapide....

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...