Avatar billede konder Nybegynder
13. februar 2008 - 21:43 Der er 21 kommentarer og
1 løsning

Kun erstatte 2 første tegn i streng

Hej eksperter. Ved ikke om det er rette kategori, men.. jeg har et udtræk f.eks.$data['adress'] = Lu ss.44.55.Jeg vil gerne erstatte de to første tegn(og kun dem) i et udtræk(ex.Lu ss.44.55 fra databasen med et helt ord. Hvis de første tegn er Lu, skal der udskrives Luiania, hvis Na så Naium. Jeg har forsøgt med:
<?php
    $sog = 'Lu';
$mer = 'Luiania';
$data['adress'] = ereg_replace ($data['adress'], $sog, $mer);
echo $data['adress'];

Men mit problem er at resten af tegnene i $data['adress'] jo ikke bliver vist men kun Luiania, uden ss.44.55.
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 21:56 #1
Resten ændres ikke. Hvor bruger du resultatet af din echo? (det kan være mellemrummet, der driller dig)
Avatar billede konder Nybegynder
13. februar 2008 - 22:00 #2
Mellemrummet drillede mig da jeg skulle sætte det ind i databasen. Men nu står det med mellemrum i db.
Jeg udskriver blot resultatet i et brev.
Avatar billede konder Nybegynder
13. februar 2008 - 22:09 #3
Jeg synes altså resten ændes uanset hvad.
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 22:13 #4
Nåh ja, ereg-funktionerne skal man holde sig fra på lidt længere sigt. Du har byttet om på rækkefølgen af parametrene. Læs selv: http://php.net/ereg_replace
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 22:13 #5
Og fordi man skal holde sig fra dem (langsommere end preg-funtionerne, og ereg-erne forsvinder måske fra standard-PHP en gang), så kunne jeg ikke se fejlen ;)
Avatar billede konder Nybegynder
13. februar 2008 - 22:18 #6
oo..ja faktorenes orden er sandelig ikke ligegyldig. Giv et svar.
Avatar billede konder Nybegynder
13. februar 2008 - 22:19 #7
Hvad skal jeg så bruge istedet?
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 22:28 #8
preg_replace, men indtil videre går det da med ereg-erne. (der er lidt forskel, så læs om det først)

Jeg samler slet ikke på point, tak. Svar selv, accepter dit eget svar.
Avatar billede konder Nybegynder
13. februar 2008 - 22:31 #9
okay men tak så.
Avatar billede konder Nybegynder
13. februar 2008 - 22:48 #10
$streng = $data['adress'];
$sog = 'Lu';
$mer = 'Luiania';
echo preg_replace($sog, $mer, $streng);  Giver godtnok kun fejlmelding hos mig.
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 22:52 #11
Ja, der er forskel som jeg skrev. Og du har ikke læst op på det ;)

$streng = $data['adress'];
$sog = 'Lu';
$mer = 'Luiania';
echo preg_replace("/^".$sog."/", $mer, $streng);
Avatar billede konder Nybegynder
13. februar 2008 - 23:00 #12
Nej jeg forstår ikke klart ^ og / og . tegn.
men tak igen. Nu står jeg med 4 forskellige muligheder/vanskeligheder:
if $sog = Lu så Louiania , if $sog = Na så Naium.Måske kan du gi en ledetråd?
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 23:04 #13
Louiania Luiania Naium - sjove navne - hvad betyder det?
Jo, 2 secs, så får du et eksempel
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 23:07 #14
http://n0p.com/819407.php ligger nedenståemnde - jeg kunne ikke lige stave til dine navne... ;)

<?
$string = 'Na 33.44.55.66';
$patterns[0] = '/^La/';
$patterns[1] = '/^Na/';
$patterns[2] = '/^Bu/';
$replacements[2] = 'Lakamanabasa';
$replacements[1] = 'Nakalamanakaba';
$replacements[0] = 'Bukojuhutuvu';
echo preg_replace($patterns, $replacements, $string);
?>
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 23:09 #15
Sku' nok ha' vær't:

<?
$string = 'Na 33.44.55.66';
$patterns[0] = '/^La/';
$patterns[1] = '/^Na/';
$patterns[2] = '/^Bu/';
$replacements[0] = 'Lakamanabasa';
$replacements[1] = 'Nakalamanakaba';
$replacements[2] = 'Bukojuhutuvu';
echo preg_replace($patterns, $replacements, $string);
?>
Avatar billede konder Nybegynder
13. februar 2008 - 23:14 #16
Tusind tak
Hvad er egentlig bedst,
4 -if ($sog = 'Lu'){
$mer = 'Luiania';}
-if ($sog = 'Na'){
$mer = 'Naium';}
eller dit?
Avatar billede konder Nybegynder
13. februar 2008 - 23:18 #17
Bortset fra af dit er meget lettere at overskue så er det måske osse meget hurtigere?
Og hvad står ^ for?
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 23:27 #18
^ står for starten af strengen. (læs...). Det er måske ligemeget i dit tilfælde.
Jeg skal ikke kunne sige hvad der er hurtigst - er det noget du skal gøre 1.000.000.000 gange om dagen?
Avatar billede konder Nybegynder
13. februar 2008 - 23:33 #19
Neeej da. Der er jo ikke mange med de navne:) Er der et tegn for slutningen af strengen?
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 23:41 #20
$, hvis tegnet står allersidst (oftest lige før /)
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 23:42 #21
Hehe, nu kan man finde "Lakamanabasa" på Google ...
Avatar billede konder Nybegynder
13. februar 2008 - 23:49 #22
tak igen  Måske kan kan du hjælpe mig med spm/813210 ?
Det tumler jeg stadig med.
Altså helt fint hvis du ikke orker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester