Archief - PHP: str_replace() limiteren

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Strangler

Legacy Member
mijn probleem is hetvolgende:

Ik haal content uit mn database, en steek deze in een string.
Daarna doe ik een str_replace op die string,
maar probleem is het volgende:
Hij mag maar 1 op de 3 vervangen.

dus stel: str_replace('bla', 'blabla', $string)
die vervangt alle 'bla' door blabla.
Ik wil dus dat hij maar 1 op 3 'bla' vervangt door 'blabla'.

Iemand enig idee?

koebeest

Legacy Member
met een loop werken met nen teller erin en dat em dan doet if teller == 3 ...
en ook in diejen if den teller weer op 0 laten zetten?

Strangler

Legacy Member
zo ver was ik ook al, maar hoe kun je daar een loop op zetten?

dJeez

Legacy Member
Met str_replace kan wat je wil gewoonweg niet, aangezien die steeds ALLE overeenkomstige strings gaat vervangen. Via een regular expression kan je het wel, zorg er gewoon voor dat je al je matches terugkrijgt in een array (vb. via preg_split, split of spliti), pas vervolgens 1 op de 3 resultaten aan en plak de array tenslotte weer samen tot 1 string.

Strangler

Legacy Member
ok, als ik een explode doe, dan kan ik da bv op spaties doen, maar probleem is: dit is voor een interlinking systeem. dus als ik wil dat 2 opeenvolgende woorden 1 link worden, kom ik daarmee in de problemen.

killgore

Legacy Member
strpos om positie te bepalen, dan 2x substring en ge zijt er :/:

$pos = strpos($string,$search);
$result = substr($string,0,$pos) . $replace . substr( $string, $pos+strlen($search));

edit: dit is de simpelste versie he, strpos zal nu de eerste eruit pikken, via wat loopen en mbv. string functies kan je ook evaluaties gaan doen, hoewel ik daar eerder een preg_replace voor aanraad.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan