[PHP] Probleem met gebruik van array met ereg_replace

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

Ik ben bezig om een scrippie te schrijven als ik een nieuws bericht toevoeg
met plaatjes dat de plaatjes die tussen [img]en[/img] staan te downloaden.
Dit werkt op zich perfect.
Nu wil ik alleen nog als ik de plaatje(s) heb gedownload de url tussen [img]en[/img] veranderen naar de url naar mijn eigen server waar het plaatjes
staat.

Ik heb nu het volgende dat op zich de urls kan vervangen echter kan ik
alleen niet $url[1][$i] gebruiken bij ereg_replace en ik kan niet snappen
eigenlijk waarom dit niet mag of niet kan. Nu is mijn vraag hoe ga ik dit
oplossen ? Iemand een suggesties voor mij ?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$tekst = "Een plaatje 
[img]http://www.google.nl/intl/nl_nl/images/logo.gif[/img] En dan nog maar 
een plaatje [img]http://images.zoeken.nl/logo.gif[/img] en nog 1 voor de 
zekerheid [img]http://www.vinden.nl/img/vinden.gif[/img] en dat was het";

preg_match_all('/\\[img\](.*?)\\[\/img\]/si', $tekst, $url);

for ($i=0; $i< count($url[1]); $i++) {
$result=ereg_replace($url[1][1],"http://images.domein.nl/21223345.gif",$tekst);

}
echo $result;

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Waarom ereg_replace? Een simpele str_replace lijkt me ook meer dan voldoende. ;) Verder gebruik je $i in je voorbeeld niet eens... :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
-NMe- schreef op maandag 18 april 2005 @ 22:33:
Waarom ereg_replace? Een simpele str_replace lijkt me ook meer dan voldoende. ;) Verder gebruik je $i in je voorbeeld niet eens... :P
In de for lus staat toch $i :)

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Ik denk dat var_dump je vriend is in dit geval. Geef die eens $url als parameter en kijk wat het resultaat is. Zo kun je zelf zien wat de werkelijke inhoud nu is.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ja, je hoogt die $i heel mooi op. Maar je doet er niks mee. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
-NMe- schreef op maandag 18 april 2005 @ 23:46:
[...]

Ja, je hoogt die $i heel mooi op. Maar je doet er niks mee. ;)
Je moet wel goed lezen he :P
...echter kan ik
alleen niet $url[1][$i] gebruiken bij ereg_replace en ik kan niet snappen
eigenlijk waarom dit niet mag of niet kan. ...
Ik zou gewoon eens volledig uitprinten wat de inhoud van $url is, met behulp van var_dump() of print_r(), dan weet je waarom het niet goed gaat. Is wel een beetje basic debug werk overigens.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 18-09 23:26

Tjark

DON'T PANIC

beetje oftopic, maar ik vind ook dat het raar is om een for loop te gebruiken als je die $i niet nodig hebt. Ik zou dan een foreach ... as doen
PHP:
1
2
3
foreach($url[1] as $aTmp) {
  $tekst=ereg_replace($aTmp[1],"http://images.domein.nl/21223345.gif",$tekst); 
}

doen.
En moet je dus niet $tekst= gebruiken ipv steeds $result= en dan d'r over loopen... heeft geen zin dan he? (omdat $result van de vorige loop pass overschreven wordt door de huidige loop iteratie)

*insert signature here


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dat had ik gelezen, maar met die code eronder wordt het zaakje een stuk lastiger, omdat het elkaar tegenspreekt. En wanneer ik twee bronnen van informatie heb die elkaar tegenspreken, dan geloof ik die met de beste leesbaarheid, wat in dit geval dus de code is. :+
Ik zou gewoon eens volledig uitprinten wat de inhoud van $url is, met behulp van var_dump() of print_r(), dan weet je waarom het niet goed gaat. Is wel een beetje basic debug werk overigens.
Uiteraard, en natuurlijk error_reporting(E_ALL); erboven. :)
TjarkVerhoeven schreef op dinsdag 19 april 2005 @ 00:17:
beetje oftopic, maar ik vind ook dat het raar is om een for loop te gebruiken als je die $i niet nodig hebt. Ik zou dan een foreach ... as doen
PHP:
1
2
3
foreach($url[1] as $aTmp) {
  $tekst=ereg_replace($aTmp[1],"http://images.domein.nl/21223345.gif",$tekst); 
}

doen.
En moet je dus niet $tekst= gebruiken ipv steeds $result= en dan d'r over loopen... heeft geen zin dan he? (omdat $result van de vorige loop pass overschreven wordt door de huidige loop iteratie)
Die code klopt niet helemaal. Als je het zo aan zou pakken, dan lijkt dit er meer op:
PHP:
1
2
3
foreach($url[1] as $aTmp) {
  $tekst = ereg_replace($aTmp, "http://images.domein.nl/21223345.gif" ,$tekst); 
}

Foreach zorgt er al voor dat je in die ereg_replace geen array meer nodig hebt. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1