PHP api get image
Ik heb gebruik een importtool om images te importeren uit een tabel en deze te mappen. Nu heb ik data (images) die gescheiden worden door een | teken. Inmiddels heb ik uitgevonden hoe ik de eerste image kan mappen met:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$images=explode("|",$self);
return array_shift($images);
Echter hoe kan de 2e of 3e image als output krijgen?
Thanks
$images=explode("|",$self);
return array_shift($images);
Echter hoe kan de 2e of 3e image als output krijgen?
Thanks
Hoe ziet de rest van $self er uit?
Is het 2° deel een bestandsnaam, een base64, een url, een imagebestandsinhoud of nog iets anders
Jan
PS het kan geen kwaad om je bericht even te herlezen.
Het probleem is dat dit geregeld wordt door een module (mapping) dat kan werken met php.
De data is een url bestand: https://www.***.nl/wp-content/uploads/2016/07/STF-8502-1.jpg|https://www.***.nl/wp-content/uploads/2016/07/***-kabinet-New-York.jpg|https://www.***.nl/wp-content/uploads/2016/07/***-kabinet-New-York-1.jpg|https://www.***.nl/wp-content/uploads/2016/07/STF-8502.jpg|https://www.***.nl/wp-content/uploads/2016/07/***-kabinet-new-york-90-cm.jpg
De output van mijn code = Dynamic value = https://www.***.nl/wp-content/uploads/2016/07/STF-8502-1.jpg
Original value = https://www.***.nl/wp-content/uploads/2016/07/STF-8502-1.jpg|https://www.***.nl/wp-content/uploads/2016/07/***-kabinet-New-York.jpg|https://www.***.nl/wp-content/uploads/2016/07/***-kabinet-New-York-1.jpg|https://www.***.nl/wp-content/uploads/2016/07/STF-8502.jpg|https://www.***.nl/wp-content/uploads/2016/07/***-kabinet-new-york-90-cm.jpg
Heb je wat meer aan deze info Jan?
array_shift() twee dingen tegelijk doet: array_shift() gooit het eerste element in een array weg (dus hier de eerste URL) en toont daarna het tweede element. Na explode() vind je de afzonderlijke URL's echter gewoon in $images[0], $images[1], $images[2], enzovoort.
Verder is het wel nuttig om te weten hoe je de elementen van een array kunt langslopen met foreach.
Bedenk dat Verder is het wel nuttig om te weten hoe je de elementen van een array kunt langslopen met foreach.
en retourneert het eerste element dat je eraf knipte.
https://www.php.net/array-shift
voorbeeld
Code (php)
1
2
3
4
2
3
4
<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
?>
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
?>
nu bevat $fruit de string "orange"
en $stack is nu een array van 3 elmenten:
waarbij de indexnummering dus ook is aangepast.
hier was
misschien beter geweest ipv een array te bewerken dat je daarna weggooit (tenzij die variabele met GLOBAL ook buiten de functie zou bestaan)
Bedankt Ivo, het probleem is echter dat ik de images niet in een array kan plaatsen toch? Eigenlijk moet ik een stuk code hebben die verwijst naar de image voor het | teken en bijv. één na de | teken.
Code (php)
Afhankelijk van het aantal scheidingstekesn (hier dus de | ) bestaat je array uit een zeker aantal elementen.
Let op voor uitzonderlijke situaties waarbij je string begint met het scheidingsteken, er mee eindigt, of als hij helemaal niet voorkomt:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$string = "|aap|noot|mies|wim|zus|jet";
$string = "aap|noot|mies|wim|zus|jet||||";
$string = "alleen een tekst";
$string = "|nr2|";
?>
$string = "|aap|noot|mies|wim|zus|jet";
$string = "aap|noot|mies|wim|zus|jet||||";
$string = "alleen een tekst";
$string = "|nr2|";
?>
$array[1] kan dus eventueel niet bestaan (net als nog hogere indexwaarden).
En de elementen kunnen dus ook een lege string bevatten.
Duidelijk, alleen is de string steeds anders. Dit betreft nu 1 rij uit een tabel maar de import gebruikt wel 50 rijen.
Code (php)
1
https://www.***.nl/wp-content/uploads/2016/07/STF-8502-1.jpg|https://www.***.nl/wp-content/uploads/2016/07/***-kabinet-New-York.jpg|https://www.***.nl/wp-content/uploads/2016/07/***-kabinet-New-York-1.jpg|https://www.***.nl/wp-content/uploads/2016/07/STF-8502.jpg|https://www.***.nl/wp-content/uploads/2016/07/***-kabinet-new-york-90-cm.jpg
Dan lees je dat in in een array.
Die array kan je dan bekijken en de urls naar de afbeeldingen tonen in een <img>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$imageLinks = explode( '|', file_get_contents('linkdata.php') );
echo '<pre>' . print_r( $imageLinks, TRUE ) . '</pre>';
foreach ( $imageLinks as $link )
{
echo $link . '<br />';
}
foreach ( $imageLinks as $link )
{
?>
<img src="<?php echo $link; ?>" style="max-width: 200px; height: 100px; "/><br /><br />
<?php
}
?>
$imageLinks = explode( '|', file_get_contents('linkdata.php') );
echo '<pre>' . print_r( $imageLinks, TRUE ) . '</pre>';
foreach ( $imageLinks as $link )
{
echo $link . '<br />';
}
foreach ( $imageLinks as $link )
{
?>
<img src="<?php echo $link; ?>" style="max-width: 200px; height: 100px; "/><br /><br />
<?php
}
?>
Het andere bedrijf doet geen moeite.
https://www.divanmeubel.nl/wp-content/uploads/2021/05/Starfurn-kabinet-New-York-1.jpg
https://www.divanmeubel.nl/wp-content/uploads/2021/05/Starfurn-kabinet-new-york-90-cm.jpg
https://www.divanmeubel.nl/wp-content/uploads/2021/05/Starfurn-kabinet-New-York.jpg
https://casaestilo.nl/wp-content/uploads/2022/02/STF-8502-1.jpg
https://casaestilo.nl/wp-content/uploads/2022/02/STF-8502.jpg