stocker dans une Bd le contenu de site aspiré grace à curl

WENKZ
Invité n'ayant pas de compte PHPfrance

25 juin 2013, 17:10

Bonjour,
depuis quelques jours je me suis mis dans le développement d'un script php avec CURL et DOMdocument qui permet d'aspirer le contenu d'un site et d'une balise precise, mon script fonctionne, mais je bloque sur la façon de sauvegardé les donnée récupérer par le script dans une base de donnée ou même dans un fichier .txt

Eléphant du PHP | 134 Messages

25 juin 2013, 17:12

.

Eléphant du PHP | 134 Messages

25 juin 2013, 22:07

up?

ViPHP
ViPHP | 2577 Messages

26 juin 2013, 07:58

Pour écrire dans un fichier, tu peux regarder les fonctions fopen(), fputs() et fclose().
Pour stocker dans une base mysql, tu peux regarder les fonctions mysqli (mysqli_querry()...)

Pour avoir une réponse, il faudrait que tu sois plus précis dans ce qui te bloque.

Eléphant du PHP | 134 Messages

26 juin 2013, 08:15

Merci de te réponse très utilise :) mais mysql_query n'est il pas obsolète ? je souhaite enregistré le resultat de ce code dans la bd ou dans un fichier .txt, je vais deja essayé d'enregistrer le contenu avec fopen() etc et si tu as une idée pour la façon de placer ces commande dans mon code t'es idée sont les bien venues ^^ merci et bonne journée =D
			
			require_once 'simple_html_dom.php';
			$html = new simple_html_dom();
			$html->load_file('http://www.domaine.fr/domaine');
			foreach($html->find('.pright') as $post){
				echo 'ARTICLE : '.'<span style="color:blue;Font-Family: Arial, Sans-Serif;">'.$post->find('.panel_titre',0)->plaintext.'<br/>'.'</span>';
				echo 'ARTICLE : '.'<span style="color:green;Font-Family: Arial, Sans-Serif;">'.$post->find('.stock_in',0)->plaintext.'<br/>'.'</span>';
				echo 'ARTICLE : '.'<span style="color:red;Font-Family: Arial, Sans-Serif;">'.$post->find('#price',0)->plaintext.'<br/>'.'</span>';				
			}

Eléphant du PHP | 134 Messages

26 juin 2013, 08:24

Et tu ne jouerai pas a cod4 toi ??? vue ton pseudo je suppose que tu aime les frags movie de mazarini nan ?

ViPHP
ViPHP | 2577 Messages

26 juin 2013, 08:46

ob_start();  // bufferisation de la page 

                       require_once 'simple_html_dom.php';
                        $html = new simple_html_dom();
                        $html->load_file('http://www.domaine.fr/domaine');
                        foreach($html->find('.pright') as $post){
                                echo 'ARTICLE : '.'<span style="color:blue;Font-Family: Arial, Sans-Serif;">'.$post->find('.panel_titre',0)->plaintext.'<br/>'.'</span>';
                                echo 'ARTICLE : '.'<span style="color:green;Font-Family: Arial, Sans-Serif;">'.$post->find('.stock_in',0)->plaintext.'<br/>'.'</span>';
                                echo 'ARTICLE : '.'<span style="color:red;Font-Family: Arial, Sans-Serif;">'.$post->find('#price',0)->plaintext.'<br/>'.'</span>';          

$f=fopen('tonfichier',w);
fputs($f,ob_get_contents());
fclose($f);
Un truc dans ce genre : tu vois à l'écran ce que tu enregistres dans le fichier grâce au fonctions ob_start() et ob_get_contents(). Si tu ne veux pas afficher le résultat dans le navigateur, ob_end_clean() vide le tampon.

Sinon tu peux remplacer les echo par des fputs() pour envoyer dans le fichier au lieu du navigateur. Ou faire une fonction qui fait echo ou fputs en fonction de la valeur d'une constante.

Si mysql_query() est obsolète, mysqli_query() ne l'est pas. Par contre, j'ai fait une faute de frappe en mettant 2 r.

Je ne connais pas cod4. Si c'est ce que je crois, je préfère les jeux au tour par tour comme Dofus. C'est beaucoup plus reposant de ne pas être obligé de martyriser son clavier ou sa souris.

Eléphant du PHP | 134 Messages

26 juin 2013, 09:07

Merci de ta réponse rapide, est il possible d'enregistrer le contenu dans un fichier excel ?? Mais aussi une autre question, sur quelle serveur jouez vous ?

Je vous fais suivre le reste du code dès que j'ai finis ^^ pour ceux qui ont besoin ;)

ViPHP
ViPHP | 2577 Messages

26 juin 2013, 09:25

J'ai fait pas mal de serveur, Goultard en dernier mais j'ai un peu arrêté. J'aime bien la première année des serveurs pour faire du commerce, après ca me gonfle. C'était marrant d'être le premier tailleur lvl 100 voir le premier cordonnier et ensuite de faire de l'élevage de dragodindes.

Eléphant du PHP | 134 Messages

26 juin 2013, 10:59

Moi j'aimais bien farm avec des potes dans les donjon pour ensuite revendre no items que l'on a drop , et au fait comment fait on pour purger le le code lorsqu'il est envoyé dans 'tonfichier' enlever tout ce qui est balise <span><br/> etc... et aussi pour lui dire de faire des saut a la ligne .... comme exemple

text
text
text

au lieu de texttexttext
et si on peut faire un tableau ou non ou créer un fichier .xlsx (excle)

ViPHP
ViPHP | 2577 Messages

26 juin 2013, 13:19

                                fputs($f,$post->find('.panel_titre',0)->plaintext);
                                fputs($f,"\n");
                                fputs($f,$post->find('.stock_in',0)->plaintext);
                                fputs($f,"\n");
                                fputs($f,$post->find('#price',0)->plaintext);        
                                fputs($f,"\n");
Un truc dans ce genre en enlevant les fonctions ob_xxxx() et en mettant le fopen() au début (avant le foreach).
Tu as 3 chaines à chaque itération, tu peux présenter comme tu veux en ajoutant des fputs() avec des balises ou n'importe quoi d'autre.

Eléphant du PHP | 134 Messages

26 juin 2013, 14:16

D'accord merci, comment puis-je créer une page dans la quelle je vais faire un formulaire a une case dans l'a quelle on devra mettre une url et en cliquant sur ajouter, l'url s'ajoute toute seul dans le script php tout en generant les meme option pour recuperer les données c'est un peu plus compliqué

ViPHP
ViPHP | 2577 Messages

26 juin 2013, 14:37

Tu récupères les données des formulaires dans les array $_GET ou $_POST suivant l'attribut method du formulaire. L'attribut action permet de spécifier l'url du script PHP.

Eléphant du PHP | 134 Messages

26 juin 2013, 16:14

un truc dans ce genre la ?
$url=$_POST['url'];
        <form action="script.php" method="post">
  
            <input type="text" name="$url" />
            <input type="submit" value="Valider" />

ViPHP
ViPHP | 2577 Messages

26 juin 2013, 16:33

Un truc dans le genre :
>?PHP

// Recup url
if (isset($url)) {
   $url=$_POST['url'];
} else {
   $url = '';
}

// traitement url
if ($url <> '') {
// le traitement qui stocke l'url dans un fichier
} else {
   echo 'url vide ou premier affichage';
}

// affichage de la page
?>
<form action="script.php" method="post">
      <input type="text" name="url" value="<?PHP echo $url; ?>" />
      <input type="submit" value="Valider" />
</form>