Explode met behoud van seperator
lang geleden, maar vandaag is het weer zo ver, ik loop even vast. Het zal vast niet zo ingewikkeld zijn maar mijn hersenen komen er even niet uit.
Bij explode is het zo dat als je bijvoorbeeld op een comma "explodeerd" dat de comma niet terug te vinden is in de array. Wat ik nu wil is dat als ik
"ik loop, zonder schoenen" heb en deze explode op een comma dat ik dan krijg in mijn array:
[]=ik loop
[]=,
[]=zonder schoenen
ik hoop dat het duidelijk is.
Met vriendelijke groeten,
Jesse
Code (php)
1
2
3
4
5
2
3
4
5
<?php
function split($text,$seperator){
$text = str_replace($seperator,$seperator.'[seperatehere]');
return explode($text,'[seperatehere]');
}
function split($text,$seperator){
$text = str_replace($seperator,$seperator.'[seperatehere]');
return explode($text,'[seperatehere]');
}
Wat ik wil is dat in de string:
"Hoi :) ik ben jesse" dat hij zichzelf opdeelt in delen. Alles wordt op de volgende manier ingedeeld:
[]="hoi" (type: 1, text)
[]=":)" (type: 2, emoticon)
[]="ik ben jesse" (type 1)
wat ik nu heb werkt prima voor 1 emoticon, deze plaatst hij keurig. maar zodra er een 2e bij komt kan hij moeilijk de explode opnieuw beginnen over de array die eerst een string was. dan krijg je het wel bekende ArrayArrayArray als je 3 emoticons hebt.
Dus heeft iemand een andere oplossing om dit op te delen? het moet dus voor meerdere emoticons kunnen en keurig in stukje vallen.
dus
"hoi :P ik ben jesse :D hoe heet jij (A)?"
moet worden:
[]=hoi (type 1)
[]=:P (type 2)
[]=ik ben jesse (type 1)
[]=:D (type 2)
[]=hoe heet jij (type 1)
[]=(A) (type 2)
[]=? (type 1)
de emoticons komen uit een db met een while.
hopelijk kan iemand me helpen.
Jesse
Zover was ik ook al in 1 van mijn pogingen maar verder dan de functie kwam ik niet. Ben er geen held in. Sugestie?
bedankt!