Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2013-02-18 19:23:13 "Imprimante - Broyeuse" du net

TAK
nouveau membre
Date d'inscription: 2013-02-18
Messages: 9

"Imprimante - Broyeuse" du net



Codelab, Bonsoir.
Un conseil ? ou même une petite aide vu notre niveau en php au Beaux Arts de Marseille ?
Présentation d'abord , nos pistes ensuite :
L'idée est de fabriquer une machine autonome, elle pioche aléatoirement et en continu des images sur Google.
Chaque image est imprimée automatiquement. A l'issue de l'impression un destructeur découpe la feuille en bandelettes de 7mm, lesquelles s’entassent au sol.
Le bricolage avance :
http://codelab.fr/up/P1040436.jpg
(la broyeuse arrive demain)

Là ou je bloque :
Ce code devrait pouvoir interroger le serveur google :

<?php

//http://www.google.com/images?q=neant&start=33&gbv=1

function GetRandomImageURL($topic='', $min=0, $max=100)
{
  // get random image from Google
  if ($topic=='') $topic='image';
  $ofs=mt_rand($min, $max);
  $geturl='http://www.google.com/images?q=' . $topic . '&start=' . $ofs . '&gbv=1';
  $data=file_get_contents($geturl);
 
  $f1='<div id="center_col">';
  $f2='<a href="/imgres?imgurl=';
  $f3='&amp;imgrefurl=';
 

 
  $pos1=strpos($data, $f1)+strlen($f1);
 // if ($pos1==FALSE) return FALSE;
  $pos2=strpos($data, $f2, $pos1)+strlen($f2);
 // if ($pos2==FALSE) return FALSE;
  $pos3=strpos($data, $f3, $pos2);
 // if ($pos3==FALSE) return FALSE;
  return substr($data, $pos2, $pos3-$pos2);
  echo("yolo");
}
?>

Celui-ci interpréter le résultat pour l'imprimer :

<?php
function ShowRandomImage($topic='')
{
  echo('<table border="1"><tr><td>');
  $url=GetRandomImageURL($topic);
  if ($url==FALSE) echo('Error while searching');
  else {
    echo(htmlentities($url) . '<br />');
    echo('<img width="640" src="' . $url . '" />');
  }
  echo('</td></tr></table>');
}
 
  
ShowRandomImage();
ShowRandomImage('rothschild');
 

?>

Que faire avec tout ça ?
Kevin est en train d'installer Php.ini sur notre serveur (TAK pour Tom,Aurel,Kevin)
Comment obtenir une url en se basant sur une recherche ? (topic)
Comment rendre cette recherche aléatoire et donc remplacer le topic par 6 lettres n'ayant rien à voir?
une requête tel que   
http://www.google.com/images?q=kjsbrp&a … &gbv=1
nous convient tout à fait.

et enfin, Comment imprimer, environ deux images par minutes automatiquement . javascript? pictbridge?

Bien à vous depuis Marseille,
C'est vrai que tout ça fait beaucoup, mais ne serait-ce qu'un petit aiguillage nous fera avancer à grand pas.
à bientôt !
Tom.

Hors ligne

 

#2 2013-02-18 19:40:05 Re : "Imprimante - Broyeuse" du net

TAK
nouveau membre
Date d'inscription: 2013-02-18
Messages: 9

Re: "Imprimante - Broyeuse" du net



http://tomrider.fr/GetRandomImageURL.php

retourne deux résultats.

Hors ligne

 

#3 2013-02-18 20:38:20 Re : "Imprimante - Broyeuse" du net

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: "Imprimante - Broyeuse" du net



Je ne connais pas le PHP, mais en python, j'ai un petit script qui permet de remplir des dossier d'images en fonction de requêtes effectuées sur google image...
Ce n'est pas du code bulletproof, mais ça marche...  tongue
http://codelab.fr/3112

Bon courage


L'Amour au Peuple !

Hors ligne

 

#4 2013-02-18 21:49:29 Re : "Imprimante - Broyeuse" du net

Jessica Nichenin
membre
Date d'inscription: 2013-01-27
Messages: 50
Site web

Re: "Imprimante - Broyeuse" du net



arfff
cela me donne plein d'idées!!!!
bon pourquoi choisir le php ?

en python ou en bash, cela sera bcp plus facile.
je ne reprends pas le script d'olivier mais il doit être très bien aussi.
alors par exemple avec ceci
http://adrienbailly.wordpress.com/2009/ … le-images/

tu le modifies légerement avec la modification de keywords par un générateur de random strings
pass=</dev/urandom tr -dc A-Za-z0-9 | head -c $randompassLength

pour le déclencher tous les minutes, tu le places dans une crontab
http://www.thegeekstuff.com/2011/07/cro … 5-minutes/

sinon
c dommage d'etre aussi brute dans la démarche.
il y a plein de choses éphémeres qui sont détruites dans l'instant que vous auriez pu matérialiser.

Hors ligne

 

#5 2013-02-18 23:09:20 Re : "Imprimante - Broyeuse" du net

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: "Imprimante - Broyeuse" du net



Et pourquoi pas en php? smile

Il ne manque preque rien pour que ça marche, juste un peu de glue, voila le code complet ci-dessous. Le copier dans un fichier, par exemple randomimage.php

Et après on peut l'appeler de deux manières :

Soit randomimage.php : et dans ce cas topic sera une chaine de 6 caractères au hasard dans l'alphabet (fonction RandomTopic)
Soit randomimage.php?topic=codelab qui enverra la requête de recherche 'codelab' à google images

Le résultat sera une image au hasard avec la requête parmi les 100 premières images de résultat (ça peut se modifier en envoyant des paramètres $min et $max à GetRandomImageURL)

Code (php) :

<?php

$topic = $_GET["topic"];

function GetRandomImageURL($topic='', $min=0, $max=100)
{
  // get random image from Google
  if ($topic=='') $topic='image';
  $ofs=mt_rand($min, $max);
  $geturl='http://www.google.com/images?q=' . $topic . '&start=' . $ofs . '&gbv=1';
  $data=file_get_contents($geturl);
 
  $f1='<div id="center_col">';
  $f2='<a href="/imgres?imgurl=';
  $f3='&amp;imgrefurl=';
 

 
  $pos1=strpos($data, $f1)+strlen($f1);
 // if ($pos1==FALSE) return FALSE;
  $pos2=strpos($data, $f2, $pos1)+strlen($f2);
 // if ($pos2==FALSE) return FALSE;
  $pos3=strpos($data, $f3, $pos2);
 // if ($pos3==FALSE) return FALSE;
  return substr($data, $pos2, $pos3-$pos2);
}



function ShowRandomImage($topic='')
{
  echo('<table border="1"><tr><td>');
  $url=GetRandomImageURL($topic);
  if ($url==FALSE) echo('Error while searching');
  else {
    echo(htmlentities($url) . '<br />');
    echo('<img width="640" src="' . $url . '" />');
  }
  echo('</td></tr></table>');
}

function RandomTopic() {
	$alphabet = "abcdefghijklmnopqrstuvwxyz";
	$topic = '';
	for ($i=0; $i < 6; $i++) {
		$topic .= substr($alphabet, rand(0, strlen($alphabet) - 1), 1);
	}
	return $topic;
}
 
if ($topic == '') $topic = RandomTopic();  

ShowRandomImage($topic);


?>

Hors ligne

 

#6 2013-02-18 23:28:53 Re : "Imprimante - Broyeuse" du net

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: "Imprimante - Broyeuse" du net



Pour l'impression automatique, javascript ne suffira pas car c'est possible de déclencher une impression automatiquement depuis le navigateur avec

<script type="text/javascript">
<!--
window.onload = function() { window.print(); }
//-->
</script>

Mais, la fenêtre d'options d'impression apparaîtra et nécessitera un clic.

Peut-être enregistrer l'image dans un dossier sur le disque dur (c'est possible en php) et lancer un truc automatique qui regarde ce dossier, imprime la nouvelle image avant de l'effacer. Avec automator si vous êtes sur mac?

Hors ligne

 

#7 2013-02-19 11:13:11 Re : "Imprimante - Broyeuse" du net

Jessica Nichenin
membre
Date d'inscription: 2013-01-27
Messages: 50
Site web

Re: "Imprimante - Broyeuse" du net



olalala la galère.

sous Linux et en bash tu peux imprimer avec un lpr -P ( sans avoir besoin d'installer toute la couche Xwindows et firefox ).
et tu peux aussi effacer toutes les images avec un rm ( ce que tu ne peux pas faire en php ).

bref camarade choisis le bash ( ou python )

Hors ligne

 

#8 2013-02-19 13:06:09 Re : "Imprimante - Broyeuse" du net

TAK
nouveau membre
Date d'inscription: 2013-02-18
Messages: 9

Re: "Imprimante - Broyeuse" du net



YES !
Que d’engouement on ne pouvait rêver mieux, 
merci à vous trois.
On en est là pour l'instant :

http://tomrider.fr/randim.php

avec une réactu toutes les 10sec, et nos six lettres aléatoires grâce à Emoc, Merci  !
le javascript fonctionne et nous ouvre une boite de dialogue mais n'est-ce pas une piste plus simple que de passer par un enregistrement / impression / suppression sur notre machine (mac ou pc)
on butine on butine...

<?php  
  
$topic = $_GET["topic"];  
  
function GetRandomImageURL($topic='', $min=0, $max=100)  
{  
  // get random image from Google  
  if ($topic=='') $topic='image';  
  $ofs=mt_rand($min, $max);  
  $geturl='http://www.google.com/images?q=' . $topic . '&start=' . $ofs . '&gbv=1';  
  $data=file_get_contents($geturl);  
   
  $f1='<div id="center_col">';  
  $f2='<a href="/imgres?imgurl=';  
  $f3='&amp;imgrefurl=';  
   
  
   
  $pos1=strpos($data, $f1)+strlen($f1);  
 // if ($pos1==FALSE) return FALSE;  
  $pos2=strpos($data, $f2, $pos1)+strlen($f2);  
 // if ($pos2==FALSE) return FALSE;  
  $pos3=strpos($data, $f3, $pos2);  
 // if ($pos3==FALSE) return FALSE;  
  return substr($data, $pos2, $pos3-$pos2);  
}  
  
  
   //montrer
function ShowRandomImage($topic='')  
{  
  echo('<table border="0"><tr><td>');  
  $url=GetRandomImageURL($topic);  
  if ($url==FALSE) echo('Error while searching');  
  else {   
    echo('<img width="640" src="'  . $url . '" />');  
  }  
   
}  
  
function RandomTopic() {  
    $alphabet = "abcdefghijklmnopqrstuvwxyz";  
    $topic = '';  
    for ($i=0; $i < 6; $i++) {  
        $topic .= substr($alphabet, rand(0, strlen($alphabet) - 1), 1);  
    }  
    return $topic;  
}  
   
if ($topic == '') $topic = RandomTopic();    
  
ShowRandomImage($topic);  
  
?>

<head> 

<META HTTP-EQUIV="Refresh" CONTENT="10; URL=http://tomrider.fr/randim.php"> 

</head>

ps : les pythons nous font un peu peur ici..

Hors ligne

 

#9 2013-02-19 18:26:02 Re : "Imprimante - Broyeuse" du net

TAK
nouveau membre
Date d'inscription: 2013-02-18
Messages: 9

Re: "Imprimante - Broyeuse" du net



Si vous voulez m'expliquer le message d'erreur je suis preneur !

http://tomrider.fr/random.php

En gros, on arrive pas à enregistrer en local...

Hors ligne

 

#10 2013-02-19 20:46:31 Re : "Imprimante - Broyeuse" du net

Jessica Nichenin
membre
Date d'inscription: 2013-01-27
Messages: 50
Site web

Re: "Imprimante - Broyeuse" du net



quand je vous disais de pas faire de php!!!

sinon c possible qu'il manque votre login:pass pour le ftp dans votre url

Hors ligne

 

#11 2013-02-19 22:33:34 Re : "Imprimante - Broyeuse" du net

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: "Imprimante - Broyeuse" du net



TAK a écrit:

Si vous voulez m'expliquer le message d'erreur je suis preneur !

http://tomrider.fr/random.php

En gros, on arrive pas à enregistrer en local...

Problème de chemin, la version en ligne semble tenter d'enregistrer avec un chemin local ( HD/Users/etc. ) alors qu'elle est sur un serveur où ce chemin n'existe pas. Il vaudrait mieux mettre un chemin relatif.

Jessica Nichenin a écrit:

quand je vous disais de pas faire de php!!!

Pourquoi cet acharnement contre PHP ? On peut enregistrer un fichier en php, sisi!

Hors ligne

 

#12 2013-02-20 06:58:36 Re : "Imprimante - Broyeuse" du net

Jessica Nichenin
membre
Date d'inscription: 2013-01-27
Messages: 50
Site web

Re: "Imprimante - Broyeuse" du net



emoc a écrit:

Jessica Nichenin a écrit:

quand je vous disais de pas faire de php!!!

Pourquoi cet acharnement contre PHP ? On peut enregistrer un fichier en php, sisi!

oui mais on peut pas imprimer et c tout de suite plus lourd. le php sert pas à cela.

Hors ligne

 

#13 2013-02-20 12:39:06 Re : "Imprimante - Broyeuse" du net

TAK
nouveau membre
Date d'inscription: 2013-02-18
Messages: 9

Re: "Imprimante - Broyeuse" du net



ça avance !
on a le chemin , avec automator on peut imprimer via le serveur sans soucis.
Par contre, Emoc peux tu nous dire comment renommer l'image telechargée pour qu'elle ecrase l'image precedente ?

Hors ligne

 

#14 2013-02-20 12:54:46 Re : "Imprimante - Broyeuse" du net

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: "Imprimante - Broyeuse" du net



TAK a écrit:

Par contre, Emoc peux tu nous dire comment renommer l'image telechargée pour qu'elle ecrase l'image precedente ?

Tout simplement, en lui donnant le même nom,
$name = "image";
plutot que
$name = array_pop($exp);

mais ça risque de poser un problème, si il y a des gif, png, jpg, il faudra peut-être convertir ?

Hors ligne

 

#15 2013-02-21 16:11:35 Re : "Imprimante - Broyeuse" du net

TAK
nouveau membre
Date d'inscription: 2013-02-18
Messages: 9

Re: "Imprimante - Broyeuse" du net



re salut!
on a réglé le problème du nom de l'image: $name=img.jpg, merci beaucoup.
Nouveau problème: comment imprimer l'image récupérée toute les 20 seconde automatiquement depuis le serveur sans la boite de dialogue d'impression. On a essayé avec Automator mais puisque l'image est changée continuellement il ne la trouve pas et il nous met toujours la boite de dialogue d'impression.
peut etre avec flash:  printjob() ?

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024