[PHP] variabel getal replacen door zichzelf met <FONT>

Pagina: 1
Acties:
  • 41 views sinds 30-01-2008

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 10:18
Ok, het probleem is als volgt.

Ben bezig met een stukje code die moet controleren of er een telefoon nummer in een string zit. Dat doe ik met een eregi:
PHP:
1
2
3
4
5
$omschrijving = "String met telnr 0123-45678 midden in."
if (eregi("[0-9]{6,10}",$omschrijving)) {
    echo("Tel nr gevonden!");
    highlight($omschrijving);
}
Vervolgens wil ik datzelfde nummer (en eventueel meerdere nummers) laten replacen door zichzelf, maar dan met de tags <FONT color='red'>0612345678</FONT> eromheen.

* FitNiX Mijn vraag is nu, hoe kan je naar de positie v/e getal in een string zoeken? :?

[ Voor 6% gewijzigd door FitNiX op 30-03-2004 14:39 ]


  • DR
  • Registratie: December 2000
  • Niet online

DR

eregi_replace / preg_replace gebruiken?

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 10:18
Corrado schreef op 30 maart 2004 @ 14:39:
eregi_replace / preg_replace gebruiken?
Daar kan je een string toch niet replacen met de gevonden string zeg maar?
Ik heb dus:
PHP:
1
"Een string met nr 0123-456789 erin"
en dat moet worden:
PHP:
1
"Een string met nr <FONT color='red'>0123-456789</FONT> erin"


PHP:
1
2
3
4
5
/* Van www.php.net : */
$num = "<FONT color='red'>0123-456789</FONT>";
$string = "Een string met nr 0123-456789 erin";
$string = ereg_replace('0123-456789', $num, $string);
echo $string;  /* Output: 'Een string met nr <FONT color='red'>0123-456789</FONT> erin' */

[ Voor 33% gewijzigd door FitNiX op 30-03-2004 14:46 ]


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 08:59

ripexx

bibs

Kermit schreef op 30 maart 2004 @ 14:42:
[...]
Daar kan je een string toch niet replacen met de gevonden string zeg maar?
Ik heb dus:
PHP:
1
"Een string met nr 0123-456789 erin"
en dat moet worden:
PHP:
1
"Een string met nr <FONT color='red'>0123-456789</FONT> erin"
Je replaced: 0123-456789 met <FONT color='red'>0123-456789</FONT>

Zoek ook eens op regex enz op GoT dan kom je genoeg voorbeelden tegen, denk maar eens aan UBB parsers enz enz :)

[ Voor 10% gewijzigd door ripexx op 30-03-2004 14:44 ]

buit is binnen sukkel


  • DR
  • Registratie: December 2000
  • Niet online

DR

Je hebt de docs op php.net van die functies uberhaupt bekeken? :{

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 10:18
Corrado schreef op 30 maart 2004 @ 14:44:
Je hebt de docs op php.net van die functies uberhaupt bekeken? :{
Euhm ja :/

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 10:18
ripexx schreef op 30 maart 2004 @ 14:44:
[...]

Je replaced: 0123-456789 met <FONT color='red'>0123-456789</FONT>

Zoek ook eens op regex enz op GoT dan kom je genoeg voorbeelden tegen, denk maar eens aan UBB parsers enz enz :)
Het probleem ligt hem in het feit dat dat nummer variabel moet zijn. :/ Dit is gewoon een voorbeeld, anders was het al opgelost ;)

  • DR
  • Registratie: December 2000
  • Niet online

DR

vraag me af hoe jij leest. :{
If pattern contains parenthesized substrings, replacement may contain substrings of the form \\digit, which will be replaced by the text matching the digit'th parenthesized substring; \\0 will produce the entire contents of string. Up to nine substrings may be used. Parentheses may be nested, in which case they are counted by the opening parenthesis.

Verwijderd

Ik vindt deze wel netjes.
Anders de faq er even op napluizen.

Verwijderd

okee mijn oplossing:

PHP:
1
2
3
4
5
6
7
8
9
10
$omschrijving = "String met telnr 0123-45678 midden in." 

#positie bepalen van het '-' karakter in de string (laatste karakter in str)
$lijntje_pos = strripos($omschrijving, "-");

#Telefoon nummer selecteren uit de omschrijving
$telefoonnr = substr ( $omschrijving, ($lijntje_pos-4), ($lijntje_pos+5));

#okee vervangen die bende!!!
$omschrijving2 = str_replace($telefoonnr, "<FONT color='red'>".$telefoonnr."</FONT>", $omschrijving);


Hoop dat dit is wat je zoekt :?

[ Voor 14% gewijzigd door Verwijderd op 30-03-2004 14:57 ]


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 26-05 19:49

RM-rf

1 2 3 4 5 7 6 8 9

je kunt binnen reguliere expressie ook in de replce een gedeeltelijk match uit de gebruikte expressie gebruiken

code:
1
string.replace(/([\d-]{11})/gi, "<span class=\"highlite\">$1</span>")

zou moeten werken, zelfs in PHP
(let ook even op de finetuning, geen FONT maar SPAN icm een class)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Skaah
  • Registratie: Juni 2001
  • Niet online
PHP:
1
preg_replace("/(\d{6,10})/","<font color=\"red\">\\1</font>",$string);

[ Voor 62% gewijzigd door Skaah op 30-03-2004 14:56 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 10:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Kom op zeg, dit is manual werk

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.