[R] Récuperer un lien dans une variable

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

[R] Récuperer un lien dans une variable

#1

Message par yagonfstm91 »

Bonjour !

Voila j'ai une variable qui contient :
► Afficher le texte
Et j'aimerais récupéré ceci :

Code : Tout sélectionner

http://yagoupload.fr.nf/thumbs/test.png
Ou cela :

Code : Tout sélectionner

/images/test.png
Je suis sur qu'il faut utiliser les fonctions "String" mais je suis vraiment nul avec !

Merci

Edit : J'ai réussis de la manière suivante :

Code : Tout sélectionner

    $sResponse = StringSplit($sResponse, "]")
    $lienyagoupload = $sResponse[7]
    $lienyagoupload = StringReplace($lienyagoupload, "[/img", "")
    $lienyagoupload = StringReplace($lienyagoupload, "thumbs", "images")
Mais doit surement y avoir plus simple.
Modifié en dernier par yagonfstm91 le mer. 29 févr. 2012 20:20, modifié 3 fois.
Mon site web : http://YagoServer.net/
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Cognac !!!
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#2

Message par TopXm »

Salut,
Hum en fait je suis passé par un StringRegExp
► Afficher le texteRecup URL du site et le dossier de l'image
ça te convient ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#3

Message par mikell »

Si c'est juste pour l'image, ya aussi ça

Code : Tout sélectionner

$nfile = FileOpen('mypage.txt')     ;J'ai collé le code source dans un fichier pour tester
$nBuf = FileRead($nfile)
FileClose($nfile)
Msgbox(0,"", StringRegExpReplace($nBuf, '(?s).+img src="([^"]+).+', "$1") )
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#4

Message par yagonfstm91 »

Ca marche Merci ! :D
Mon site web : http://YagoServer.net/
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

Re: [R] Récuperer un lien dans une variable

#5

Message par yagonfstm91 »

Hum parfois il arrive que ca me retourne ca :

Code : Tout sélectionner

http://YagoUpload.fr.nfHTTP/1.1 200 OK
Date: Wed, 22 Feb 2012 15:44:46 GMT
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_perl/2.0.5 Perl/v5.8.8
X-Powered-By: PHP/5.3.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=c71a7b30eb197efe1b7b5f2fd102d41f; path=/
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

b3




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="
2
fr
8
" lang="
 
:?
Mon site web : http://YagoServer.net/
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#6

Message par Iste »

Ca manque de "?" !
Essayez avec '(?s).+img src="([^"]+?).+' en regexp
Signez ici
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#7

Message par mikell »

@Iste
'(?s).+img src="([^"]+?).+'
Pas bon, dans ce cas le non-gourmand ne fait retourner que le 1er caractère (non-guillemet) après la marque de début (img src=") ^^
la négation-plus est précisément une alternative économe au plus-non-gourmand (.+?)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#8

Message par Iste »

Ha uai c'est pas faux, j'ai reconnu le probleme et ai essayé de coller la solution habituelle, mais qui ne convient pas dans ce cas ^^'
Pour ça que ça me semblait étrange :o

Bon bah on peut ajouter l'espace a la négation alors.
Mais le plus sur pour l'avenir du future, serait de lister tout les caractères possibles qui sont bien moins nombreux que ceux impossibles ! (pour le moment)
Signez ici
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#9

Message par yagonfstm91 »

Euh d'accord merci donc je met quoi du coup ?
Mon site web : http://YagoServer.net/
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#10

Message par mikell »

Humpf sans code ni lien à tester, on répond quoi ?
Chez moi l'exemple précédent marche, mais tu peux aussi essayer ça

Code : Tout sélectionner

$nfile = FileOpen('mypage.txt')     ;J'ai collé le code source dans un fichier pour tester
$nBuf = FileRead($nfile)
FileClose($nfile)
Msgbox(0,"", StringRegExpReplace($nBuf, '(?s)(.+?)img src="(.+?)".+', "$2") )
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#11

Message par yagonfstm91 »

Merci je vais essayer.

Voici donc la fonction complète :

Code : Tout sélectionner

Func _UploadTo_yagoupload($sFile, $iRet_Type = 0)
    $sLocalFile = $sFile ;Local file
    $sHost = 'http://yagoupload.fr.nf' ;Upload page addresss
    $sFormAction = '/' ;Upload form action ("form action=...upload.php)"
    $sFormName = 'fileup' ;Upload form name ("input name=uploadfile")

    $sResponse = _TCPFileUpload($sLocalFile, $sHost, $sFormAction, $sFormName)

    FileWrite("mypage.txt", $sResponse)
    $nfile = FileOpen('mypage.txt')
    $nBuf = FileRead($nfile)
    FileClose($nfile)
    FileDelete("mypage.txt")
    $lienyagoupload = StringRegExpReplace($nBuf, '(?s)(.+?)img src="(.+?)".+', "$2")
    $lienyagoupload = "http://YagoUpload.fr.nf"&$lienyagoupload


    Return $lienyagoupload
EndFunc
Mon site web : http://YagoServer.net/
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#12

Message par yagonfstm91 »

Code : Tout sélectionner

StringRegExpReplace($nBuf, '(?s)(.+?)img src="(.+?)".+', "$2")
Hum sa me retourne le logo du site,c'est pas ce que je veux :?

Code : Tout sélectionner

http://YagoUpload.fr.nf/site-img/logo.png
:|

D'ailleurs pourquoi passer par un txt ?

Code : Tout sélectionner

    $lienyagoupload = StringRegExpReplace($sResponse, '(?s).+img src="([^"]+).+', "$1")
    $lienyagoupload = "http://YagoUpload.fr.nf"&$lienyagoupload
Ca marche aussi
Mon site web : http://YagoServer.net/
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#13

Message par mikell »

[quote="yagonfstm91"]

Code : Tout sélectionner

Hum sa me retourne le logo du site,c'est pas ce que je veux  [/quote]Bon OK, mais retrouver une image dans un code se fait par des balises, des repères, etc, et dans ta page comme repère pour les images, on trouve :
img src="
image" src="
img src=
id_div_2.src=
Alors il suffit de choisir le bon ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#14

Message par yagonfstm91 »

Je viens de faire avec ca :

Code : Tout sélectionner

    $lienyagoupload = StringRegExpReplace($sResponse, '(?s).+href="/images([^"]+).+', "$1")
    $lienyagoupload = "http://YagoUpload.fr.nf/images"&$lienyagoupload
ca a l'air de macher

edit : ah bah non, il arrive encore que parfois ca me retourne

Code : Tout sélectionner

http://YagoUpload.fr.nf/imagesHTTP/1.1 200 OK
Date: Sat, 25 Feb 2012 00:00:24 GMT
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_perl/2.0.5 Perl/v5.8.8
X-Powered-By: PHP/5.3.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=2f5f91d437b9752e106e670ebecbaaa4; path=/
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

b3




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="
2
fr
8
" lang="
 
Le probleme doit venir d'ailleurs...

edit : Comment afficher un message d'erreur si $lienyagoupload retourne le mauvais code ?
Mon site web : http://YagoServer.net/
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Cognac !!!
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#15

Message par TopXm »

Salut,

Donnes un exemple de retour de request qui "merdoit", ça aidera sans doute ;)

c'est toi qui héberges l'image et tu veux récup l'url dans la page ? C'est de la lecture de code source à la volée ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#16

Message par mikell »

TopXm a écrit :C'est de la lecture de code source à la volée ?
Si oui, le script de chargement avec l'adresse précise de la page, ça aiderait...
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#17

Message par yagonfstm91 »

TopXm a écrit :Salut,

Donnes un exemple de retour de request qui "merdoit", ça aidera sans doute ;)
Ben je l'ai poster dans le message juste au dessus :?
TopXm a écrit :c'est toi qui héberges l'image et tu veux récup l'url dans la page ? C'est de la lecture de code source à la volée ?
Oui
mikell a écrit :Si oui, le script de chargement avec l'adresse précise de la page, ça aiderait...
Ben je l'ai poster plus haut aussi, a moins que l'on parle pas de la meme chose...
► Afficher le texte
Mon site web : http://YagoServer.net/
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#18

Message par mikell »

Faudrait faire un test de debug
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Cognac !!!
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#19

Message par TopXm »

Hello :)

En effet j'avais rien capté, je pensais que ce que tu avais posté c'était après le RegExp, mais dans ce cas vu le code source retourné on dirait bien que c'est le _TCPFileUpload qui se vautre et non le code fourni par Mikell ;)
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

Re: [..] Récuperer un lien dans une variable

#20

Message par yagonfstm91 »

Comment faire pour faire un truc du genre :

Si $sReponse (ou $lienyagoupload) contient "HTTP/1.1 200 OK" alors afficher une MsgBox ?

edit c'est bon j'ai trouver

Code : Tout sélectionner

$SplitLienYagoUpload = StringSplit($lienyagoupload, "/")
    If $SplitLienYagoUpload[4] = "?img=HTTP" Then
        MsgBox(48, "Erreur - YagoUpload", "L'envois de l'image a échoué, veuillez réessayer.")
        $lienyagoupload = "http://YagoUpload.fr.nf/?img=xpb4h.png"
    EndIf
Modifié en dernier par yagonfstm91 le mer. 29 févr. 2012 20:19, modifié 1 fois.
Mon site web : http://YagoServer.net/
Répondre