Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 10:38 Der er 28 kommentarer og
1 løsning

Dele tekst op i variabler?

Hvordan kan man dele en tekst op i variabler, fx. hvis man har en boks med mailadresse, og så separere med "; " Hvordan kan mn så putte det ind i forskellige variabler, Eller noget andet.

det jeg skal er i mit mailsystem at kunne sende til flere brugere ad gangen.
Sådan
bruger1; bruger2; bruger3
hvordan plukker man dem ud og lægger ind i mysql hver i sær!?
Avatar billede ullesan Nybegynder
13. juli 2004 - 10:41 #1
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 10:49 #2
så jeg splitter sådan?


$user = bruger1; bruger2; bruger3
list($1, $2, $3) = split('; ', $user);

Så deler den op med den første i  $1 osv.

Men hvordan gør jeg så der ingen maksimum er?
Avatar billede sostack Nybegynder
13. juli 2004 - 10:49 #3
$postmodtagere = "jens@mail.dk; kurt@mail.dk; peter@mail.dk";
$modtagere = trim(explode(";", $postmodtagere));
nu er:
$modtagere[0] =  "jens@mail.dk"
$modtagere[1] =  "kurt@mail.dk"
$modtagere[2] =  "peter@mail.dk"

//sostack
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 10:51 #4
Du skal vel have mellemrum med i trim:

$modtagere = trim(explode("; ", $postmodtagere));

ller hvad?
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 10:54 #5
Hvordan sender jeg enkelt ud så jeg ikke skal indtaste

til $modtagere[1]
og $modtagere[2]
osv.
Avatar billede taskmgr Nybegynder
13. juli 2004 - 10:55 #6
trim() fjerner whitespaces i starten og slutningen af en streng.
Avatar billede sostack Nybegynder
13. juli 2004 - 10:56 #7
for($i = 0; $i < count($modtagere); $i++)
{
  mail(blah, $modtagere[$i],"!","");
}

//sostack
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 10:56 #8
hvad så hvis brugeren har et mellemrum, hvilket de kan have

så fjerner den vel ikke det?
Avatar billede sostack Nybegynder
13. juli 2004 - 10:57 #9
fjerner kun i starten og slutningen af en streng

//sostack
Avatar billede taskmgr Nybegynder
13. juli 2004 - 11:00 #10
Jeg ville bruge foreach()

<?
$postmodtagere = "jens@mail.dk; kurt@mail.dk; peter@mail.dk";
$postmodtagere = str_replace(" ", "", $postmodtagere);
$modtagere = explode(";", $postmodtagere);

foreach($modtagere as $email){
    // mail(....);
    echo "Mail sendt til " . $email . "<br />";
}
?>
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 11:00 #11
ok, så tænkte jeg på, hvordan kan man forhindre at brugere har et mellemrum i starten eler bagefter sit brugernavn, selvom det ingen mening har.
[m] = mellemrum

[m]bruger1[m]

Hvordan kan jeg melde fejl hvis han har det.

Han må godt havemidt i navnet!
Avatar billede taskmgr Nybegynder
13. juli 2004 - 11:01 #12
I ovenstående bliver alle whitespaces fjernet.
Avatar billede taskmgr Nybegynder
13. juli 2004 - 11:03 #13
Hvis de gerne må have i selve email adressen, så starter du med at bruge split(";"...) og laver en trim på hver af adresserne med trim()
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 11:08 #14
Helt nøjagtig hvad skal jeg bruge trim til?
og hvordan deler jeg alle op automatisk i stedet for manuelt her?

$user = bruger1; bruger2; bruger3
list($1, $2, $3) = split('; ', $user);

hvad skal trim bruges til, og hvordan gør jeg 11:00:46
Avatar billede sostack Nybegynder
13. juli 2004 - 11:10 #15
Hvor kommer dine email adresser fra?
Er det fra en database eller hvad?

//sostack
Avatar billede sostack Nybegynder
13. juli 2004 - 11:12 #16
Er emailadresserne nogle man taster ind i en form?

//sostack
Avatar billede taskmgr Nybegynder
13. juli 2004 - 11:14 #17
Hvis du læste i manualen, så står der nogenlunde følgende om trim :)

"trim --  Strip whitespace from the beginning and end of a string"

Dvs, trim() fjerner mellemrum i starten og i slutningen af en streng (det har jeg vist skrevet før). Eks:

<?
$streng = " her er en streng ";
$streng = trim($streng);

echo $streng; //udskriver "her er en streng", altså uden mellemrum i starten og i slutningen.
?>

Du kan dele din streng "automatisk" op med split(), som vi har vist før. Den giver dig et array med adresserne.
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 12:04 #18
man taster ind i en form, og poster til en side der lægger datene ind i mysql!

når jeg bruger split så vil jeg gerne at den automatisk laver flere og flere variabler, i stedet for at jeg skl indtaste $1 $2 osv. helt indtil mange tusinde!

$user = bruger1; bruger2; bruger3
list($1, $2, $3) = split('; ', $user);

hvordan kan jeg lave en løkke fx. der gør det?
og samtidig lægger ind i databaen med hver enkelte brugenavn (MAIL)?
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 12:10 #19
undskyd jeg først skriver nu men skulle lige ordne noget, svar venligst på ovenstående!
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 12:34 #20
er i blevet væk?
Avatar billede sostack Nybegynder
13. juli 2004 - 12:40 #21
//forbind til databasen her
$emailadresser = explode($_POST["emailadresser"]); //eller hvad dit felt i formen nu hedder
$tabel = "navnet på din tabel i databasen"
for($i = 0; $i < count($emailadresser); $i++)
{
  mysql_query("INSERT INTO $tabel set `emailadresse`='" . trim($eamiladresser[$i]) . "'");
}

//sostack
Avatar billede sostack Nybegynder
13. juli 2004 - 12:41 #22
$tabel = "navnet på din tabel i databasen"
skal være $tabel = "navnet på din tabel i databasen"; //<-- ;

//sostack
Avatar billede sostack Nybegynder
13. juli 2004 - 12:44 #23
//forbind til databasen her
$emailadresser = explode($_POST["emailadresser"]); //eller hvad dit felt i formen nu hedder
$tabel = "navnet på din tabel i databasen";
for($i = 0; $i < count($emailadresser); $i++) // her tæller den fra 0 til det antal emailadresser der er, ligemeget hvormange.
{
  mysql_query("INSERT INTO $tabel set `emailadresse`='" . trim($eamiladresser[$i]) . "'"); //her sætter den hver enkelt adresse ind i databasen, en af gangen.
}

//sostack
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 12:55 #24
. trim($eamiladresser[$i]) .

bliver til 1,2,3,4,5 osv.

ok, men ha desværre ikke tid til at tjekke om det virker før jeg kommer hjem fra ferie! den 27. men takker, et ser rigtigt ud, smid et svar, så accepterer jeg hvis det virker!
Avatar billede sostack Nybegynder
13. juli 2004 - 12:59 #25
Ellers må du jo spørge igen!

//sostack
Avatar billede hmmhelpinghmm Nybegynder
13. juli 2004 - 13:00 #26
Ses den 27. :)
Avatar billede hmmhelpinghmm Nybegynder
27. juli 2004 - 22:15 #27
når jeg skriver dette, udskriver den
r
r
a


<?

$postmodtagere = "hej;    hva så; hejej";

$modtagere = trim(explode("; ", $postmodtagere));

echo $modtagere[1];
echo "<br>";
echo $modtagere[2];
echo "<br>";
echo $modtagere[3];


?>

hvorfor
Avatar billede hmmhelpinghmm Nybegynder
27. juli 2004 - 22:18 #28
opretter nyt med samme antal point!
Avatar billede hmmhelpinghmm Nybegynder
27. juli 2004 - 23:45 #29
Dette blev lukket fordi at det ikke virkede, og så den den var lidt lang, åbnede jeg en ny!
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