PHP api get image

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jur Dijkstra

Jur Dijkstra

21/06/2022 12:29:17
Quote Anchor link
Hi,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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
 
PHP hulp

PHP hulp

27/06/2022 16:28:32
 
Jan R

Jan R

21/06/2022 12:39:21
Quote Anchor link
Dan zal je toch meer info moeten geven. Het enige wat we hier kunnen uithalen is dat het 2° element een image is en dan enkel met jouw weinige info.
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.
 
Jur Dijkstra

Jur Dijkstra

21/06/2022 13:05:48
Quote Anchor link
Bedankt Jan,

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?
 
Ward van der Put
Moderator

Ward van der Put

21/06/2022 14:16:10
Quote Anchor link
Bedenk dat 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.
 
Ivo P

Ivo P

21/06/2022 14:46:00
Quote Anchor link
array_shift() knipt het eerste element van het array (dat by referency aangeleverd wordt)
en retourneert het eerste element dat je eraf knipte.

https://www.php.net/array-shift

voorbeeld
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
    [0] => banana
    [1] => apple
    [2] => raspberry


waarbij de indexnummering dus ook is aangepast.

hier was
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
return $images[0];


misschien beter geweest ipv een array te bewerken dat je daarna weggooit (tenzij die variabele met GLOBAL ook buiten de functie zou bestaan)
 
Jur Dijkstra

Jur Dijkstra

22/06/2022 11:02:46
Quote Anchor link
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.
 
Ivo P

Ivo P

22/06/2022 11:20:33
Quote Anchor link
Dat doe je met explode:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$string
= "aap|noot|mies|wim|zus|jet";
$leesplankarray = explode('|', $string);

echo 'eerste = ' . $leesplankarray[0];
echo 'tweede = ' . $leesplankarray[1];
?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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|";
?>


$array[1] kan dus eventueel niet bestaan (net als nog hogere indexwaarden).
En de elementen kunnen dus ook een lege string bevatten.
 
Jur Dijkstra

Jur Dijkstra

22/06/2022 11:30:15
Quote Anchor link
Duidelijk, alleen is de string steeds anders. Dit betreft nu 1 rij uit een tabel maar de import gebruikt wel 50 rijen.
 
Adoptive Solution

Adoptive Solution

22/06/2022 11:37:34
Quote Anchor link
Als dit het bestand is met de urls

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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)
PHP script in nieuw venster Selecteer het PHP script
1
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
}
?>
 
Ivo P

Ivo P

22/06/2022 11:38:31
Quote Anchor link
Dan loop je langs alle rijen die je ophaalt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    foreach($rowfromdatabase as $string) {
        $array = explode('|', $string);
    }

?>
 
Adoptive Solution

Adoptive Solution

22/06/2022 16:14:18
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.