webForumDet fria alternativet

Byt endast ut den första förekomsten

PHP

6 svar · 744 visningar · startad av learn

Medlem sedan jan. 20051 130 inlägg
Frågan#1

Jag har en sträng som jag vill byta ut en del av. Problemet är att delen kan förekomma flera gånger i strängen och det är bara den första förekomsten som skall bytas ut.

DVS:

abchejdefhej

Ska bli:

abcdefhej

Där "hej" är den del som byts ut...

Hur gör jag så att endast den första förekomsten byts ut?

Medlem sedan juli 20023 617 inlägg
#2

Kanske finns något smartare sätt... Leta rätt på positionen med strpos och byt ut med substr_replace.

Medlem sedan jan. 20051 130 inlägg
#3

fiddler skrev:

Kanske finns något smartare sätt... Leta rätt på positionen med strpos och byt ut med substr_replace.

Är inte det lite svårt när jag inte vet hur lång strängen och den eftersökta delen är? Visa gärna hur du tänker...

Medlem sedan sep. 200593 inlägg
#4

tänkte som fiddler.

<?php

$search = 'hej';
$string = 'abchejdefhej';

echo substr_replace ($string, '', stripos ($string, $search), strlen ($search));

// "abcdefhej"

?>

men även jag får lite av fulhack-känslan. men jaja, it does the trick!

Medlem sedan aug. 2001145 inlägg
#5

preg_replaces sista parameter berättar hur många som ska ändras och eftersom de är den första du ska ta bort så sätt en etta där bara.

preg_replace("/hej/", "XXX", $string, 1);

Medlem sedan sep. 200593 inlägg
#6

smart

Medlem sedan jan. 20051 130 inlägg
#7

Tack Dies_Irae!

298 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
162 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
153 ms — ändringar (db)