Html tag uit string halen en tonen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees de braak

Kees de braak

25/06/2007 22:33:00
Quote Anchor link
Ik heb een artikel en daarin staan plaatjes. Nou wil ik bij het pre-tonen van het artikel (klein stukje tekst met leesmeer erbij) een plaatje.

Nou moet ik een regex hebben om de eerste <img src="%"> eruit te halen.
Het moet ook werken als er <IMG SRC='%'> staat.

Ik heb het volgende stukje script al, maar het werkt niet perfect. Hoe kan ik ervoor zorgen dat het wel werkt?
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
20
21
22
23

            $artikel = stripslashes($row['inhoud']);
            $woordenartikelarray = explode(" ",$artikel);
            $aantalwoorden = count($woordenartikelarray);
            echo $aantalwoorden;
            $vardone = '';
            $counter2 = 1;
            $img = '';
            while($aantalwoorden > $counter2 AND $vardone != 'done')
             {
                if($woordenartikelarray[$counter2] == "<img" OR $woordenartikelarray[$counter2] == "<IMG")
                 {
                    
                    $src = $counter2 + 1;
                    $src = $woordenartikelarray[$src];
                    $src = str_replace('(.*?)\>$','\1\>',$src);
                    $img = '<div style="overflow: hidden; float: right; width: 150px; height: 100px;"><img '.$src.'></div>';
                    $vardone = 'done';
                 }
                
                $counter2 = $counter2 + 1;

             }
 
PHP hulp

PHP hulp

21/11/2024 21:41:15
 
- -

- -

25/06/2007 22:41:00
Quote Anchor link
Iets in de richting van:
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
<?php
    $artikel
= 'Blaat';
    $array = explode('<', $artikel);
    $search = true;
    foreach ($array as $string)
    {

        $array = explode('>', $string);
        if ($search && strtolower(substr(trim($array[0]), 0, 3)) == 'img')
        {

            search = false;
            $img = '<' . $array[0] . '>';
        }
    }

    echo $img;
?>

(niet getest)
 
- -

- -

25/06/2007 22:49:00
Quote Anchor link
ik denk dat je beter met preg_match_all kunt werken. Iets als dit, getest en werkend bevonden :P

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
20
21
22
23
24
25
<?php

$text
= 'adfgadfgadff sajfhsadjfh sda
f adjfffh gasdjf asdjf ghdafjf s
daf hasdf hgasdjkf gsadf
sad f jka<IMG alt="test" src="kebab.jpg" />sdg fsdhf asd jg ads
agfdjhg adsjfk hsd
gjdfhg jadfgh adfsgjl hadfg
sdfgadskjgh adfg adfg
asdjkhadf <IMG src="kipsate.jpg"> asdgdafgdf
sdfg
sdfgsdfgsdf
gsdfgsdfgsdfgsdfghsdfhrtgdarg d eg rtfg adfg tsh g
dsfg sdfg serg sdrg srtgsdf sgfd
asldgjhdflg <img src="iksdee.jpg"> sdf af awef awef cdsafsdfgasd
asdgregaergadfvadg'
;

preg_match_all('/<img (.*)src="(.+)"(.*)>/i', $text, $imgs);

$first = $imgs[2];  // Nummer 2, want we willen de waarde van de tweede (.*) hebben
$first = $first[0]; // En daarvan dan weer de 0, want dat is de eerste match

echo '<img src="'.$first.'" />'; // $first zal de src van het eerste voorkomen van <img> bevatten

?>
Gewijzigd op 01/01/1970 01:00:00 door - -
 
Kees de braak

Kees de braak

25/06/2007 23:04:00
Quote Anchor link
Ja herjan, ik probeerde eerst jouw manier en het werkte niet, toen jonathans manier gebruikt en dat werkte na een klein foutje gefixed te hebben. In ieder geval bedankt beiden.
 
Robert Deiman

Robert Deiman

25/06/2007 23:24:00
Quote Anchor link
Marthijn Hoiting schreef op 25.06.2007 23:04:
Ja herjan, ik probeerde eerst jouw manier en het werkte niet, toen jonathans manier gebruikt en dat werkte na een klein foutje gefixed te hebben. In ieder geval bedankt beiden.


Wat moest je nog aanpassen dan? Misschien zijn er meer die er wat aan kunnen hebben ;)
 
Jurgen assaasas

Jurgen assaasas

26/06/2007 00:07:00
Quote Anchor link
Je kunt de code toch weergeven op je scherm door de < en > en " te veranderen in htmlentities
 



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.