Avatar billede nicolailissau Nybegynder
07. april 2009 - 22:49 Der er 11 kommentarer og
1 løsning

Hvad er det tredje tegn i denne string?

Hej Eksperter.

Jeg kan ikke finde ud af hvilken funktion jeg skal bruge for at jeg kan få et output der fortæller mig hvad tredje tegn er?

Eksempel:
$string = "007";
echo ??

Mvh
Avatar billede Slater Ekspert
07. april 2009 - 22:54 #1
Du kan bare bruge strengen som et array, og sige $string[2] for at finde det tredje tegn.
Men huske at spørge om den findes (med isset), hvis du ikke er sikker på strengen er mindst 3 tegn lang.
Avatar billede nicolailissau Nybegynder
07. april 2009 - 22:57 #2
Selvfølgelig! jeg sidder bare og koger.. tak tak smid et svar :)
Avatar billede nicolailissau Nybegynder
07. april 2009 - 23:29 #3
Hmm.. Der var jeg lidt for hurtig.. Jeg kan ikke få det til at fungere.. Kan du komme med et eksempel?
Avatar billede nicolailissau Nybegynder
08. april 2009 - 00:07 #4
Jeg fik styr på det - men læg gerne et svar alligevel.

Mvh
Avatar billede nicolailissau Nybegynder
08. april 2009 - 00:27 #5
Til interesserede kan jeg sige at det jeg ville var, at jeg ville oprette en "kode" til visning af indhold.

Jeg kører et lille studieweb hvor jeg poster mine skoleopgaver, og nogle gange har jeg ikke både en opgave, beskrivelse af opgave, download eller andet klar og derfor ville jeg lave en lille kode, der kunne fortælle mig hvilke af disse elementer der skulle vises.

Jeg gør det med dette lille script, hvor visuals er den kode jeg selvfølgelig sætter ved mine <input> tags når opgaven oprettes(eller senere redigeres i):
Hvis den har koden 1 vises den, ellers ikke. Jeg gør det så simpelt:

$visuals = "01010";
if(strlen($visuals) == 5){
$arr = str_split($visuals);

print_r vil så outputte:
Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 )

I praksis vil jeg selvfølgelig bruge det ved at sige if($arr[3] == 1) {
//indholdet
}

Nå, bare hvis der var andre der sad med noget lignende.

Mvh
Avatar billede nicolailissau Nybegynder
08. april 2009 - 00:28 #6
forkert output, det bliver selvfølgelig:
Array ( [0] => 0 [1] => 1 [2] => 0 [3] => 1 [4] => 0 )
Avatar billede olebole Juniormester
08. april 2009 - 01:47 #7
<ole>

Du kan også bruge bit shifting:
    http://dk2.php.net/manual/en/language.operators.bitwise.php

Prøv denne kode:

<?php
/*
    Her kan du se, hvad der sker,
    når man bit shifter et 1-tal
    med forskellige værdier
*/
print "(1<<0) => ".(1<<0)."<br>";
print "(1<<1) => ".(1<<1)."<br>";
print "(1<<2) => ".(1<<2)."<br>";
print "(1<<3) => ".(1<<3)."<br>";
print "(1<<4) => ".(1<<4)."<br>";
print "(1<<5) => ".(1<<5)."<br>";
print "(1<<6) => ".(1<<6)."<br>";
print "(1<<7) => ".(1<<7)."<br>";
print "(1<<8) => ".(1<<8)."<br>";
print "(1<<9) => ".(1<<9)."<br>";
print "(1<<10) => ".(1<<10)."<hr>";
?>

<?php
/*
    Her gemmer vi tre forskellige værdier
    i et enkelt tal - og finder bagefter ud af
    hvilke værdier, der er gemt i variablen
*/

// Opret en variabel med værdien 1
$foo = 1;

// Sæt 3, 5 og 8 på variablen
$foo += (1<<3);
$foo += (1<<5);
$foo += (1<<8);

print "Her har vi sat 3, 5 og 8 på variablen, som nu indeholder tallet:<br>";
print "8 + 32 + 256 = ".$foo."<hr>";

// Tjek, hvad der er sat
if ( $foo&(1<<1) ) print "1 er sat <br>";
if ( $foo&(1<<2) ) print "2 er sat <br>";
if ( $foo&(1<<3) ) print "3 er sat <br>";
if ( $foo&(1<<4) ) print "4 er sat <br>";
if ( $foo&(1<<5) ) print "5 er sat <br>";
if ( $foo&(1<<6) ) print "6 er sat <br>";
if ( $foo&(1<<7) ) print "7 er sat <br>";
if ( $foo&(1<<8) ) print "8 er sat <br>";
if ( $foo&(1<<9) ) print "9 er sat <br>";
if ( $foo&(1<<10) ) print "10 er sat <br>";
if ( $foo&(1<<11) ) print "11 er sat <br>";
if ( $foo&(1<<12) ) print "12 er sat <br>";
?>

/mvh
</bole>
Avatar billede olebole Juniormester
08. april 2009 - 01:51 #8
Du kan f.eks. også gemme op til 30 ja/nej tilfælde (f.eks. værdien af 30 checkboxe i en formular) i ét INT-felt i en MySQL-tabel. Det kan bl.a. være yderst anvendeligt ved tildeling af brugerrettigheder i et administrations system
Avatar billede nicolailissau Nybegynder
08. april 2009 - 11:26 #9
Hej Ole. Tak for dit svar.

Jeg kan godt se funktionen i dit script, men det jeg laver nu er relativt simpelt, så jeg tror jeg holder mig til det jeg kom frem til.

Mvh
Nicolai

--- Smid et svar Viperine
Avatar billede Slater Ekspert
08. april 2009 - 11:32 #10
Gerne. Selvom det virker som forbandet lidt jeg har sagt, i forhold til Ole.
Avatar billede olebole Juniormester
08. april 2009 - 13:15 #11
nicolailissau >> Det er langtfra sikkert, bit shifting er bedre i den aktuelle situation, men jeg ville blot vise en alt for ofte overset løsning på potentielt rigtig mange opgaver  ;o)
Avatar billede nicolailissau Nybegynder
08. april 2009 - 13:24 #12
Jeg har været inde og læse på det ;) så nu er budskabet i  hvert fald bragt videre.
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