/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Kan må få str_replace til kun af udskifte ~
Fra : Michael Jensen


Dato : 29-09-03 19:53

Hejsa

Hvis jeg nu har
$str = "foo foo foo foo";
$str = str_replace("foo", "bar", $str);
så bliver $str = "bar bar bar bar";

Er det muligt evt. vha. reg. exp. at kun udskifte det første "foo" og så
ignorer resten?

Så resultatet bliver $str = "bar foo foo foo";



--
Med venlig hilsen

Michael Jensen
Michael[SNABEL]ogj[PRIK]DK



 
 
Michael Jensen (29-09-2003)
Kommentar
Fra : Michael Jensen


Dato : 29-09-03 20:35

Michael Jensen wrote:
> Hejsa
>
> Hvis jeg nu har
> $str = "foo foo foo foo";
> $str = str_replace("foo", "bar", $str);
> så bliver $str = "bar bar bar bar";
>
> Er det muligt evt. vha. reg. exp. at kun udskifte det første "foo" og
> så ignorer resten?

Ja, jeg fik jo lige en ide efter jeg havde sendt indlægget så her kommer
løsningen:
function fixFirstPageBreak($string)
{
$str_rep = "always"; // what to be replaced
$str_new = "auto"; // what to be new
$pos = strpos($string, $str_rep);
$len = strlen($str_rep);
$string_new = substr_replace($string, $str_new, $pos, $len);
return $string_new;
} // function

--
Med venlig hilsen

Michael Jensen
Michael[SNABEL]ogj[PRIK]DK



Nezar Nielsen (30-09-2003)
Kommentar
Fra : Nezar Nielsen


Dato : 30-09-03 11:45

Michael Jensen wrote:

> Er det muligt evt. vha. reg. exp. at kun udskifte det første "foo" og så
> ignorer resten?

Du er godt klar over at str_replace ikke arbejder med regexps ikke ?
anyways:
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [,
int limit])
....
If limit is specified, then only limit matches will be replaced; if
limit is omitted or is -1, then all matches are replaced.

Altså:

<?php
$bar='hello bar bar bar bar bar bar bar';
$foobars = preg_replace("|bar|", "foo", $bar, 1);
?>

--
Mvh. Nezar Nielsen
http://fez.dk/


Michael Jensen (01-10-2003)
Kommentar
Fra : Michael Jensen


Dato : 01-10-03 10:31

Nezar Nielsen wrote:
> Michael Jensen wrote:
>
>> Er det muligt evt. vha. reg. exp. at kun udskifte det første "foo"
>> og så ignorer resten?
>
> Du er godt klar over at str_replace ikke arbejder med regexps ikke ?
> anyways:

Jeps det vidste jeg godt.

> mixed preg_replace ( mixed pattern, mixed replacement, mixed subject
> [, int limit])

Arrrh, den funktion havde jeg ikke lige fået læst godt nok

>
> Altså:
>
> <?php
> $bar='hello bar bar bar bar bar bar bar';
> $foobars = preg_replace("|bar|", "foo", $bar, 1);

Jeg prøver at teste lidt på hastigheden for at se hvad der bedst kan betale
sig.

--
Med venlig hilsen

Michael Jensen
Michael[SNABEL]ogj[PRIK]DK



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste