Krijg de tweede URL van een string in PHP
Ik heb een rare string met karakters, waaronder URLs. Ik wil graag met PHP alleen de tweede URL eruit halen. Hoe kan ik dit doen?
Dit is mijn string:
Code (php)
1
https://miro.medium.com/max/552/1*lndfM7v39c1tu_a8r0n16A.png 276w, https://miro.medium.com/max/1104/1*lndfM7v39c1tu_a8r0n16A.png 552w, https://miro.medium.com/max/1280/1*lndfM7v39c1tu_a8r0n16A.png 640w, https://miro.medium.com/max/1400/1*lndfM7v39c1tu_a8r0n16A.png 700w
Bedankt!
Jeroen
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$string="https://miro.medium.com/max/552/1*lndfM7v39c1tu_a8r0n16A.png 276w, https://miro.medium.com/max/1104/1*lndfM7v39c1tu_a8r0n16A.png 552w, https://miro.medium.com/max/1280/1*lndfM7v39c1tu_a8r0n16A.png 640w, https://miro.medium.com/max/1400/1*lndfM7v39c1tu_a8r0n16A.png 700w";
$split = explode(", ",$string);
print_r($split);
?>
$string="https://miro.medium.com/max/552/1*lndfM7v39c1tu_a8r0n16A.png 276w, https://miro.medium.com/max/1104/1*lndfM7v39c1tu_a8r0n16A.png 552w, https://miro.medium.com/max/1280/1*lndfM7v39c1tu_a8r0n16A.png 640w, https://miro.medium.com/max/1400/1*lndfM7v39c1tu_a8r0n16A.png 700w";
$split = explode(", ",$string);
print_r($split);
?>
Weet je ook nog iets over de url? Begint die altijd met http(s) ?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$string = ' https://miro.medium.com/max/552/1*lndfM7v39c1tu_a8r0n16A.png 276w, https://miro.medium.com/max/1104/1*lndfM7v39c1tu_a8r0n16A.png 552w, https://miro.medium.com/max/1280/1*lndfM7v39c1tu_a8r0n16A.png 640w, https://miro.medium.com/max/1400/1*lndfM7v39c1tu_a8r0n16A.png 700w ';
$b = preg_match_all('# (https?\:[^ ]+)#', $string, $aM);
var_dump($aM);
?>
$string = ' https://miro.medium.com/max/552/1*lndfM7v39c1tu_a8r0n16A.png 276w, https://miro.medium.com/max/1104/1*lndfM7v39c1tu_a8r0n16A.png 552w, https://miro.medium.com/max/1280/1*lndfM7v39c1tu_a8r0n16A.png 640w, https://miro.medium.com/max/1400/1*lndfM7v39c1tu_a8r0n16A.png 700w ';
$b = preg_match_all('# (https?\:[^ ]+)#', $string, $aM);
var_dump($aM);
?>
Je antwoord zit dan dus in $aM[0][1]
Toevoeging op 07/05/2020 17:19:21:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
array(2) {
[0]=>
array(4) {
[0]=>
string(61) " https://miro.medium.com/max/552/1*lndfM7v39c1tu_a8r0n16A.png"
[1]=>
string(62) " https://miro.medium.com/max/1104/1*lndfM7v39c1tu_a8r0n16A.png"
[2]=>
string(62) " https://miro.medium.com/max/1280/1*lndfM7v39c1tu_a8r0n16A.png"
[3]=>
string(62) " https://miro.medium.com/max/1400/1*lndfM7v39c1tu_a8r0n16A.png"
}
[1]=>
array(4) {
[0]=>
string(60) "https://miro.medium.com/max/552/1*lndfM7v39c1tu_a8r0n16A.png"
[1]=>
string(61) "https://miro.medium.com/max/1104/1*lndfM7v39c1tu_a8r0n16A.png"
[2]=>
string(61) "https://miro.medium.com/max/1280/1*lndfM7v39c1tu_a8r0n16A.png"
[3]=>
string(61) "https://miro.medium.com/max/1400/1*lndfM7v39c1tu_a8r0n16A.png"
}
}
[0]=>
array(4) {
[0]=>
string(61) " https://miro.medium.com/max/552/1*lndfM7v39c1tu_a8r0n16A.png"
[1]=>
string(62) " https://miro.medium.com/max/1104/1*lndfM7v39c1tu_a8r0n16A.png"
[2]=>
string(62) " https://miro.medium.com/max/1280/1*lndfM7v39c1tu_a8r0n16A.png"
[3]=>
string(62) " https://miro.medium.com/max/1400/1*lndfM7v39c1tu_a8r0n16A.png"
}
[1]=>
array(4) {
[0]=>
string(60) "https://miro.medium.com/max/552/1*lndfM7v39c1tu_a8r0n16A.png"
[1]=>
string(61) "https://miro.medium.com/max/1104/1*lndfM7v39c1tu_a8r0n16A.png"
[2]=>
string(61) "https://miro.medium.com/max/1280/1*lndfM7v39c1tu_a8r0n16A.png"
[3]=>
string(61) "https://miro.medium.com/max/1400/1*lndfM7v39c1tu_a8r0n16A.png"
}
}
topics die over scrapen gaan meteen achter een slotje gooit wil ik toch deze even hier droppen (volgens mij zijn we hier namelijk gewoon met de volgende stap bezig van het gesloten topic): https://blog.iusmentis.com/2016/11/04/is-scrapen-website-computervredebreuk/
Zoals ik het lees: Het scrapen van een site an sich is (meestal) niet verboden (tenzij het expliciet in de voorwaarden staat), het gaat er meer om wat je later met die data gaat doen.
Uit persoonlijke ervaring zit er ook wel heel veel verschil tussen scrapers:
- Je hebt ze die elke 5 seconden een pagina opvragen (dezelfde pagina - om te kijken of er al "iets nieuws" is, om dan de eerste te zijn die reageert), de hele dag door. Die krijgen meteen een perma-ban aan de broek. Dito voor die gasten die even een "kopie" van je hele site komen maken (vanaf een heel cluster aan IP-adressen, voor vele uren).
- Hobbyisten die gewoon wat data op willen vragen voor eigen gebruik, en daarvoor een paar keer per dag een bepaalde pagina opvragen. Naast het feit dat dit amper te detecteren is vind ik dat verder ook prima (als ze de hele dag op F5 gaan zitten rammen heb je er meer werk aan, omdat er dan veel meer dan enkel HTML naar de overkant moet).
En omdat Ariën alle Zoals ik het lees: Het scrapen van een site an sich is (meestal) niet verboden (tenzij het expliciet in de voorwaarden staat), het gaat er meer om wat je later met die data gaat doen.
Uit persoonlijke ervaring zit er ook wel heel veel verschil tussen scrapers:
- Je hebt ze die elke 5 seconden een pagina opvragen (dezelfde pagina - om te kijken of er al "iets nieuws" is, om dan de eerste te zijn die reageert), de hele dag door. Die krijgen meteen een perma-ban aan de broek. Dito voor die gasten die even een "kopie" van je hele site komen maken (vanaf een heel cluster aan IP-adressen, voor vele uren).
- Hobbyisten die gewoon wat data op willen vragen voor eigen gebruik, en daarvoor een paar keer per dag een bepaalde pagina opvragen. Naast het feit dat dit amper te detecteren is vind ik dat verder ook prima (als ze de hele dag op F5 gaan zitten rammen heb je er meer werk aan, omdat er dan veel meer dan enkel HTML naar de overkant moet).
Scrapen is eigenlijk wel het laatste redmiddel waar je naar zou moeten grijpen. Je zou ook eenmalig de content kunnen ophalen en vervolgens met andere middelen (HEAD? E-Tag?) kunnen checken of content (inhoudelijk) is veranderd.
Een andere reden dat er gescraped wordt is het ontbreken van een fatsoenlijke (desnoods betaalde) API/webservice via welke je op een fatsoenlijke wijze informatie kunt opvragen.
Ik probeer inderdaad een Web Scraper te maken voor Medium. Ik vind het een leuke uitdaging om artikelen en teksten van een andere website zo goed mogelijk over te nemen.
Uiteraard is dit alleen voor eigen gebruik.
Ariën, bedankt voor je antwoord. Ik ben nu een stap verder.
Jeroen van Rensen
En dit is ook een methode om gegevens die op een speciale url gezet worden in te lezen. Bijvoorbeeld weersgegevens. Via JQUERY in programma te gebruiken,