Toon posts:

[PHP] Replace ????

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb bijvoorbeeld de volgende string:

$string = '<font size="1">Beerse Boys 1</font>'

Die wil ik gaan aanpassen zodat ik die een eigen style kan meegeven, dus bijvoorbeeld zou het resultaat moeten zijn:

$string = '<font color="red">Beerse Boys 1</font>

Nu weet ik dat ik mbv een replace() gewoon de vaste zaken kan vervangen. Maar ik wil het scriptje voor meerdere strings toepassen. Zo heb ik naast de bovenstaande string dus ook '<font size="1">Beerse Boys 2</font>' en '<font size="1">Beerse Boys 3</font>'.

Ik wil dus gebruik maken van een eregi_replace() op ongeveer de volgende manier:

$string = eregi_replace('<font size="1">Beerse Boys ??</font>', '<font color="red"><b>Beerse Boys ??</b></font></font>', $string);

Het nummer achter achter Beerse Boys veranderd dus steeds maar moet wel meegenomen worden naar de veranderde stijl. Ik ben al bezig geweest met Beerse Boys([^>])* en dan selecteerd ie wel de gehele regel maar dan kan ik het achtervoegsel weer niet afbeelden ???


Ik hoop dat het een beetje duidelijk is wat ik wil ;)

Verwijderd

Topicstarter
Sluiten maar

ik heb het al ;)

Verwijderd

Topicstarter
Toch nog ff een vraagje.
Ik wil het scriptje uitbreiden. In een hele lange string (15 kb) komt zeker de volgende string voor: Beerse Boys ???

Op de plaats van de ??? kunnen of 1 of 2 of 3 karakters staan. Dat is afhankelijk van welke pagina ingeladen wordt. Ik wil 'Beerse Boys' met het teamnr. erbij in een var. zetten.

Hoe krijg ik dat voor elkaar ????

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
code:
1
2
$blaat = "Beerse Boys";
echo preg_replace("_$blaat ([0-9]{1,3})_", "$blaat \\1", $string);

  • tomato
  • Registratie: November 1999
  • Niet online
code:
1
2
3
$p = "/beerse boys [0-9]{1,3}/is";
preg_match($p, $string, $m);
echo $m[0];

Verwijderd

Topicstarter
Nee sorry, ik kom er niet uit. Deze string heb ik: 1 Rood Wit V 1 9 7 1 1 22 20 7 2 Brabantia 1 10 6 3 1 21 11 6 3 SBC 1 10 6 2 2 20 28 13 4 Beerse Boys 1 10 5 3 2 18 16 10 5 Bergeijk 1 9 3 3 3 12 14 11 6 PSV 1 9 3 3 3 12 11 9 7 GSBW 1 9 3 3 3 12 12 11 8 DOSL 1 10 3 3 4 12 7 13 9 Pusphaira 1 10 3 1 6 10 12 16 10 RPC 1 9 1 4 4 7 9 18 11 Nieuw Woensel 1 10 2 1 7 7 18 31 12 De Raven 1 9 1 1 7 4 11 24

Hieruit moet Beerse Boys en het eerste getal erachter opgehaald worden en in een var. gestopt. Maar ik krijg het gek genoeg niet aan de praat....

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op dinsdag 13 november 2001 18:22 schreef tomato het volgende:
code:
1
2
3
$p = "/beerse boys [0-9]{1,3}/is";
preg_match($p, $string, $m);
echo $m[0];
pfff, perfectionist! ;)

  • tomato
  • Registratie: November 1999
  • Niet online
marcusk: pfff, perfectionist! ;)
Ik interpreteerde de vraag iets anders, dus gaf ik een ander antwoord ;)

En nu is de vraag weer helemaal veranderd, dus mag nog iemand het proberen :P

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
code:
1
2
3
4
5
6
7
8
9
10
11
12
<?
    $string = "1 Rood Wit V 1 9 7 1 1 22 20 7 ";
    $string .= "2 Brabantia 1 10 6 3 1 21 11 6 ";
    $string .= "3 SBC 1 10 6 2 2 20 28 13 ";
    $string .= "4 Beerse Boys 1 10 5 3 2 18 16 10 ";
    $string .= "5 Bergeijk 1 9 3 3 3 12 14 11 ";
    $string .= "6 PSV 1 9 3 3 3 12 11 9 ";

    $blaat = "beerse boys";
    preg_match("_$blaat [0-9]{1,3}_i", $string, $regs);
    echo $regs[0];
?>

resultaat: Beerse Boys 1

't werkt toch echt hoor.

  • tomato
  • Registratie: November 1999
  • Niet online
marcusk: 't werkt toch echt hoor.
Ja, marcusk heeft gelijk.

En laat me raden, het gaat om een voetbalcompetitie? :P

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op dinsdag 13 november 2001 21:27 schreef tomato het volgende:
En laat me raden, het gaat om een voetbalcompetitie? :P
hoe kom je daar dan bij !? :? :? ;)
Pagina: 1