[PHP] String splitsen met sscanf *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • dik_voormekaar
  • Registratie: April 2003
  • Laatst online: 15-09 21:32
Ik heb een probleempje dat volgens mij erg simpel moet zijn, maar ik kom er maar niet uit:
Ik wil een veld type uit MySQL splitsen in type en lengte.
Het type uit MySQL bestaat uit "type(lengte)".
Ik gebruik de volgende code om dit te splitsen in type en lengte:
PHP:
1
2
$str = "varchar(10)";
list($type, $len) = sscanf($str, "%s/%d");

Het resultaat is echter dat $type = "varchar(10)" wordt, en $len leeg.
Ziet iemand een stomme fout?

Acties:
  • 0 Henk 'm!

  • TweakPino
  • Registratie: September 2005
  • Laatst online: 09:25

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Als je weet dat er een ( tussen staat, waarom gebruik je dan een / :?

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.


Acties:
  • 0 Henk 'm!

  • dik_voormekaar
  • Registratie: April 2003
  • Laatst online: 15-09 21:32
OOPS, ik heb m'n code verkeerd gepasted.

Ik heb dus de volgende code geprobeerd:
PHP:
1
2
$str = "varchar(10)"; 
list($type, $len) = sscanf($str, "%s(%d)");

[ Voor 81% gewijzigd door dik_voormekaar op 12-11-2007 17:06 ]


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
PHP:
1
list($type, $len) = sscanf($str, "%[^(](%d)");

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

PrisonerOfPain schreef op maandag 12 november 2007 @ 17:06:
PHP:
1
list($type, $len) = sscanf($str, "%[^(](%d)");
nice.....

* LuCarD heeft eigenlijk nog nooit sscanf gebruikt 8)7

Terwijl ik toch wel al een aantal jaartjes met php stoei ... :X

[ Voor 73% gewijzigd door LuCarD op 12-11-2007 17:09 ]

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • dik_voormekaar
  • Registratie: April 2003
  • Laatst online: 15-09 21:32
PrisonerOfPain schreef op maandag 12 november 2007 @ 17:06:
PHP:
1
list($type, $len) = sscanf($str, "%[^(](%d)");
Deze werkt! Bedankt!
Hoe werkt nu de expressie "%[^(](%d)" ?
Is dat een reguliere expressie?

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
dik_voormekaar schreef op maandag 12 november 2007 @ 17:10:
[...]

Deze werkt! Bedankt!
Hoe werkt nu de expressie "%[^(](%d)" ?
Is dat een reguliere expressie?
%[^(] matched alle tekens tot 't een ( tegenkomt en (%d) matched een integer tussen ( en ). %s werkt niet omdat 'ie (10) ook als string ziet omdat er geen whitespace in staat.

[ Voor 11% gewijzigd door PrisonerOfPain op 12-11-2007 17:14 ]

Pagina: 1