jmp Posted May 12, 2017 at 06:00 PM Report #604202 Posted May 12, 2017 at 06:00 PM Boa tarde a todos Necessito copiar o Url de varias imagens, já fiz a expressão regular e refiz varias vezes, já andei na internet, e neste momento já estou a deitar fumo e não funciona bem. Passo explicar. Preciso copiar por exemplo este url: //images.egorealestate.com/Z140x105/S5/C2689/P7114704/Tphoto/IDd08f6c00-0000-0500-0000-00000373e7ef.jpg desta amalgama <img class="thumbnail current" src="//images.egorealestate.com/Z140x105/S5/C2689/P7114704/Tphoto/IDd08f6c00-0000-0500-0000-00000373e7ef.jpg" title="DownloadPhoto" alt="DownloadPhoto%1/17" mediumlink="//images.egorealestate.com/Z640x480" originallink="//images.egorealestate.com/Z1024x768" previewsrc="/S5/C2689/P7114704/Tphoto/IDd08f6c00-0000-0500-0000-00000373e7ef.jpg" style="opacity: 1;"> Como as ER que fiz não tiravam só o url encontrei esta na net, e que por azar tem um erro qualquer que agora não estou a ver! preg_match_all('/(<img.*?src=['|"])([^'|"]*)(['|"].*?/?>)/mi', $url, $resultado); Alguma mente brilhante pode fazer o favor de me dar uma ajudinha! Desde já obrigado
HappyHippyHippo Posted May 12, 2017 at 07:00 PM Report #604213 Posted May 12, 2017 at 07:00 PM \s(src)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
jmp Posted May 12, 2017 at 07:38 PM Author Report #604218 Posted May 12, 2017 at 07:38 PM 30 minutos atrás, HappyHippyHippo disse: \s(src)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']? Olá HappyHippyHippo Obrigado pela resposta, mas ainda dá este erro : Parse error: syntax error, unexpected ']' in C:\xampp\htdocs\imagens.php on line 18. A linha 18 é expressão regular. Fazes ideia do que seja. Obrigado
HappyHippyHippo Posted May 12, 2017 at 09:10 PM Report #604222 Posted May 12, 2017 at 09:10 PM nao porque não dizes como usaste a expressão... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
jmp Posted May 13, 2017 at 07:22 AM Author Report #604226 Posted May 13, 2017 at 07:22 AM Bom dia pessoal HappyHippyHippo usei a tua ER na integra preg_match_all('\s(src)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?', $conteudo, $resultado); Não é assim? Obrigado
HappyHippyHippo Posted May 13, 2017 at 08:07 AM Report #604227 Posted May 13, 2017 at 08:07 AM tens de fazer escape dos caracteres delimitadores da string ... não usas nenhum editor com syntax highlighting IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
jmp Posted May 13, 2017 at 11:01 AM Author Report #604236 Posted May 13, 2017 at 11:01 AM Desta vez e para testar, utilizei o bloco de notas do Windows e guardei em utf8, e nada feito o erro mantem-se!
M6 Posted May 13, 2017 at 12:02 PM Report #604239 Posted May 13, 2017 at 12:02 PM Tens mesmo de usar uma expressão regular? É que para obteres o que queres podes usar um parser de XML/HTML, que neste caso te simplifica muito a vida. Se tiveres de usar uma expressão regular, creio que isto faz o que queres: <img.*src="(.*)".*[/]+> 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
jacreis Posted May 13, 2017 at 02:22 PM Report #604245 Posted May 13, 2017 at 02:22 PM @jmp sem os limitadores não vais à lado nenhum. O regex fornecido pelo @HappyHippyHippo funciona na perfeição ora vê: https://regex101.com/r/veSTop/1 . O teu problema está na não utilização de delimitadores: - https://secure.php.net/manual/en/regexp.reference.delimiters.php ---
jmp Posted May 13, 2017 at 04:02 PM Author Report #604248 Posted May 13, 2017 at 04:02 PM 54 minutos atrás, jacreis disse: @jmp sem os limitadores não vais à lado nenhum. O regex fornecido pelo @ funciona na perfeição ora vê: https://regex101.com/r/veSTop/1 . O teu problema está na não utilização de delimitadores: - https://secure.php.net/manual/en/regexp.reference.delimiters.php Olá jacreis Mesmo com limitadores o erro mantem-se, realmente a solução do HappyHippyHippo devia funcionar, mas há algo que faz dar este erro!
devgoncalo Posted May 13, 2017 at 04:27 PM Report #604250 Posted May 13, 2017 at 04:27 PM ola não pode ser por jquery? var qwe = $(".thumbnail").attr('src'); cumps
jacreis Posted May 13, 2017 at 05:18 PM Report #604251 Posted May 13, 2017 at 05:18 PM @jmp O erro que estás a ter, (repara que ainda não deste nenhuma informação sobre o erro), deve-se muito provavelmente apenas a erros sintaxe do php. Ao utilizares um editor de texto com syntax highlight - como recomendado por @HappyHippyHippo - podes antecipar os erros de syntax, muito a semelhança do corrector ortográfico nos editores de texto. Não usaria o notepad para editor, a não ser em ultimo caso. Tens vários editores por onde escolher, vê aqui: http://noeticforce.com/best-php-ide-for-programmers-windows-and-macComo prova de conceito, : <?php $conteudo ='<img class="thumbnail current" src="//images.egorealestate.com/Z140x105/S5/C2689/P7114704/Tphoto/IDd08f6c00-0000-0500-0000-00000373e7ef.jpg" title="DownloadPhoto" alt="DownloadPhoto%1/17" mediumlink="//images.egorealestate.com/Z640x480" originallink="//images.egorealestate.com/Z1024x768" previewsrc="/S5/C2689/P7114704/Tphoto/IDd08f6c00-0000-0500-0000-00000373e7ef.jpg" style="opacity: 1;">'; $regex = "/\s(src)=[\"\']?((?:.(?![\"']?\s+(?:\S+)=|[>\"']))+.)[\"']?/" ; preg_match_all($regex, $conteudo, $resultado); var_dump($resultado); ---
jmp Posted May 13, 2017 at 05:31 PM Author Report #604252 Posted May 13, 2017 at 05:31 PM 21 horas atrás, jacreis disse: @jmp sem os limitadores não vais à lado nenhum. O regex fornecido pelo @HappyHippyHippo funciona na perfeição ora vê: https://regex101.com/r/veSTop/1 . O teu problema está na não utilização de delimitadores: - https://secure.php.net/manual/en/regexp.reference.delimiters.php Olá jacreis Tens toda a razão já resolvi o problema! Tive de utilizar os limitadores e alterar a ER do HappyHippyHippo para esta: preg_match_all('/\s(src)=["\']?((?:.(?!["\']?\s+(?:\S+)=|[>"\']))+.)["\']?/', $conteudo,$resultado); Obrigado a todos
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now