Opdracht LOI hulp

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Scrum Master

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Scrum master op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je begeleidt twee teams binnen de afdeling Platform Services (PLS). Je helpt mee de devops manier van werken van de teams verder door te ontwikkelen. Je helpt de PO bij het managen van de product backlog; het voorbereiden van

Bekijk vacature »

C# .NET Ontwikkelaar ASP.NET

Samengevat: Deze werkgever is een inkooporganisatie. Ben jij een ervaren .Net ontwikkelaar? Heb je ervaring met .Net en C#? Vaste baan: C# .NET Developer .Net MBO HBO €3.100 - €4.300 Onze missie is: “Een essentiële bijdrage leveren aan het verlagen van de integrale kostprijs van de aangesloten groothandels, middels het bundelen van inkoopvolume en het creëren van synergie met en tussen de groothandels en leveranciers, met scherpe inkoopprijzen, goede handelscondities en gerichte dienstverlening als resultaat” Zij werken voor MKB klanten. Deze werkgever heeft veel verschillende projecten. Houd jij van afwisseling? Dan zit je bij hun goed! De branche van dit

Bekijk vacature »

IoT Software Developer PHP

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een IoT software developer met kennis van PHP. In deze rol wordt je verantwoordelijk voor het vernieuwen van het multimedia platform van een super tof bedrijf in Breda. Je gebruikt PHP als programmeerlaag, en bent in staat om de helicopterview te pakken / projectmatig te werken. Jouw werkzaamheden zien er als volgt uit: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "intern" ontwikkelde multimedia platform. Je neemt de lead in het moderniseren van het platform door het deels opnieuw op te zetten of

Bekijk vacature »

Junior .NET developer

Functie Om half 9 kom jij binnen en pak jij als eerst natuurlijk een bakje koffie of thee. Vervolgens ga jij je voorbereiden op de stand-up van kwart voor 9. Zijn er bijvoorbeeld dingen waar jij nog tegen aan loopt? Of is er nog code die getest of gereviewd moet worden? Vervolgens starten jullie met de stand up en na de stand up zoeken jullie elkaar op en gaan jullie aan de slag. Als team met 6 developers werken jullie in drie wekelijkse sprints. Het einde van een sprint is altijd op een donderdag zodat jullie op vrijdag de demo

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Boskoop dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat technische klussen uitvoeren op locatie bij klanten.Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat software en webapplicaties ontwikkelen met behulp van de talen

Bekijk vacature »

Senior Airport Developer ( System engineer)

De functie Nice to know (you) De nieuwe A-pier wordt de duurzaamste van Schiphol. Als deze af is ligt er 4000 vierkante meter zonnepanelen op het dak. En de toiletten? Die spoelen door met regenwater. we gaan ervoor: het creëren van de meest duurzame en hoogwaardige luchthavens ter wereld. een toekomstbestendig en duurzaam Schiphol. Daar werken we elke dag hard aan in team Development & Sustainability. Jij bent regisseur, expert én aanjager van de ontwikkeling van Schiphol. Connecting your world Hoe maak je de ambities en doelstellingen van Schiphol concreet in een project? De waarde voor Schiphol naar eisen die

Bekijk vacature »

Front-end (Angular) developer - remote werken

Functie Als Front-end (Angular) developer ga je aan de slag met het uitbouwen van hun webapplicatie, als één van de front-end experts ga je samen met collega’s in een devops team werken aan een nieuw front-end voor hun calculatie oplossing. Binnen de calculatiesoftware kunnen meerdere professionals tegelijk samenwerken, 3D calculaties uitvoeren en ook inzien met de benodigde specifieke details. Deze software wordt veel ingezet om projectbeschrijvingen en kosten in kaart te brengen, en tijdens de uitvoering te bewaken. Maar hiernaast liggen er in de toekomst veel meer plannen op het gebied van front-end in de andere applicaties. Genoeg te doen

Bekijk vacature »

SQL Developer

Functie omschrijving We are looking for a dutch native speaker Jij gaat in deze functie aan de slag met uitdagende projecten en het creëren van maatwerk software, vooral middels SQL. Iedere klant/project is weer anders, maar dat maakt dit bedrijf en de functie erg uniek & uitdagend. Verder heb je de volgende taken: Ontwikkelen en ontwerpen van SQL databases. T-SQL wordt hierbij gebruikt als programmeer laag; Optimalisatie van query's, voor een verbeterde efficiency; Begeleiden van junior developers, mits je dit leuk vindt; Heb je meer interesse in een rol als consultant, dan is dit ook mogelijk. Je heb hier meer

Bekijk vacature »

IT Infrastructuur Developer

IT Infrastructuur Developer Ben jij (bijna) klaar met je HBO studie in de richting van IT? Opzoek naar een spannende eerste baan, waar je ontzettend veel kan leren? Dan hebben wij de ultieme job voor jou! Voor een goede klant van ons in de financiële dienstverlening zijn wij opzoek naar een Junior Infrastructure Developer. Deze baan is een mooie kans om een sterke start te geven aan jouw carrière binnen de IT! De job Je werkt nauw samen met het Devops team, en zal je voornamelijk bezighouden met het automatiseren van infrastructure componenten. De componenten worden opgevraagd door het DevOps

Bekijk vacature »

Developer Angular & Kotlin

Dit ga je doen Het (door)ontwikkelen van mobiele apps en webapplicaties; Het opstellen van technisch ontwerp en het bespreken van ontwerpen met de software architect; Het uitvoeren van werkzaamheden op het gebied van technisch testen; Het in de gaten houden van nieuwe ontwikkelingen op jouw vakgebied en het adviseren van de organisatie hierover. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze organisatie is van oorsprong een familiebedrijf, er wordt hard gewerkt, er heerst een no nonsense en doeners mentaliteit, een informele sfeer en er is een mix van

Bekijk vacature »

Junior/medior PHP developer Onderwijssector

Functie Momenteel zijn ze op zoek naar een developer die, veelal fullstack, mee gaat werken aan de ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP), Vue.js

Bekijk vacature »

Back End Developer .NET

Dit ga je doen Ontwikkelen in C# .NET en werken aan nieuwbouw, uitbouw en onderhoud van de software (die communiceren met 68.000 sensoren, waardoor er meerdere miljoenen berichten per uur verwerkt worden); Samenwerken in Scrum Teams; Meewerken aan verschillende, uitdagende projecten; Werken met nieuwe technologieën en vrijheid krijgen om jezelf te ontwikkelen en door te groeien. Hier ga je werken Je komt als Developer te werken bij een organisatie die gespecialiseerd is in software die real-time wordt gebruikt. De software constateert waar werk moet worden uitgevoerd en de chauffeurs worden met een andere applicatie hierop geattendeerd. Ook wordt er direct

Bekijk vacature »

Senior .NET Developer I goed salaris en deels thui

Bedrijfsomschrijving Mijn opdrachtgever is al ruim 20 jaar een gevestigde naam in de wereld van software ontwikkeling, met drie kantoren in de Randstad, waaronder Alphen aan den Rijn. Zij richten zich op het bouwen van IT-oplossingen die ervoor zorgen dat de productiviteit van klanten te allen tijden optimaal is. Hiervoor neemt jouw nieuwe werkgever het volledige ontwikkelproces tot haar rekening; van het eerste gesprek om de klantwensen in kaart te brengen, tot aan het uiteindelijke onderhoud van de opgeleverde oplossing. In totaal werken er inmiddels bijna 200 gemotiveerde IT-ers binnen deze organisatie. De gemiddelde leeftijd ligt rond de 35. Het

Bekijk vacature »

Junior Software Developer C# Verhuursector Verhuur

Samengevat: Wij ontwikkelen en leveren softwaresystemen voor de logistieke sector en de verhuursector. Ben jij geschikt als Junior Software Developer? Heb je ervaring met Delphi? Vaste baan: C# Software Developer Logistiek HBO €2.500 - €3.900 Deze werkgever is een software ontwikkelaar, gericht op software voor de logistieke sector. Deze werkgever heeft eigen producten ontwikkelen en leveren ook maatwerk. Ons bedrijf kent een boeiende en inspirerende werkomgeving met een open cultuur en mogelijkheden voor je verdere ontwikkeling. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om

Bekijk vacature »

Front-end developer E-Commere

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als front-end developer heb je een adviserende rol en sta je aan het eindpunt van alles wat met designs te maken heeft. Je overlegt met klanten en collega’s, en zet je in om ideeen om te zetten tot unieke concepten. Je bent het aanspreekpunt voor de klant en bewaakt tevens de planning. Eisen

Bekijk vacature »
Niek Limpens

Niek Limpens

17/08/2012 14:11:23
Quote Anchor link
Hallo,

Momenteel ben ik bezig met een PHP cursus maar ik loop vast bij een opdracht.
Hieronder de beschreven opdracht:
Maak een uitbreiding op compdna.php. De bedoeling van de uitbreiding is dat met behulp van een for lus de string onderzocht wordt op 'AAAAAA'. De leiding van het NFI wil graag dat bij iedere gevonden 'AAAAAA' de positie wordt afgedrukt.
Noem het programma compdna2.php .

compdna.php is het volgende script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$dna1
= "TATAGTTTCCTCTCTATAT";
$dna2 = <<<DNA
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA
DNA
;

$dnatotal = $dna1.$dna2;

echo $dnatotal;
?>


Nu is het dus de bedoeling om met een for loop de substring positie van 'AAAAAA' te vinden en bij elke keer dat deze gevonden wordt de positie af te drukken. Ik heb het volgende script geschreven:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$dna1
= "TATAGTTTCCTCTCTATAT";
$dna2 = <<<DNA
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA
DNA
;

$dnatotal = $dna1.$dna2;
$length = strlen($dnatotal);

for (
$count = 0;
$count <= $length;
$count++)
{


    print strpos($dnatotal, 'AAAAAA',$count) and print "<BR>";

}



?>


Nu vind ik inderdaad de positie en druk deze telkens af, maar hij drukt nu elke keer de positie dubbel af zolang $count kleiner is of gelijk is aan $length. Volgens mij hoef ik maar een klein aanpassing te maken, maar ik kom er niet uit! Kan iemand mij op weg helpen? ;) Bedankt!!
 
PHP hulp

PHP hulp

12/05/2024 13:34:04
 
Albert de Wit

Albert de Wit

17/08/2012 14:32:44
Quote Anchor link
uh... misschien domme opmerking maar waarom staat er 'and print'?

waarom niet echo strpos($dnatotal, 'AAAAAA', $count).'<br>';
 
- SanThe -

- SanThe -

17/08/2012 14:33:16
Quote Anchor link
Ik kan je de oplossing wel geven maar daar leer je weinig van.
Kijk eens naar substr().
 
Niek Limpens

Niek Limpens

17/08/2012 14:33:55
Quote Anchor link
@Albert de Wit
Ik ben een beginner, vandaar waarschijnlijk :P maar bedankt voor de tip
 
- SanThe -

- SanThe -

17/08/2012 14:34:56
Quote Anchor link
Albert de Wit op 17/08/2012 14:32:44:
waarom niet echo strpos($dnatotal, 'AAAAAA', $count).'<br>';


Omdat dat ook niet werkt?
Gewijzigd op 17/08/2012 14:40:36 door - SanThe -
 
Albert de Wit

Albert de Wit

17/08/2012 14:36:03
Quote Anchor link
waarom niet? komt dacht ik toch op hetzelfde neer?
 
Niek Limpens

Niek Limpens

17/08/2012 14:36:36
Quote Anchor link
Heb het even getest, werkt inderdaad die .<BR>;

Toevoeging op 17/08/2012 14:37:01:

met accolades uiteraard
 
- SanThe -

- SanThe -

17/08/2012 14:38:43
Quote Anchor link
Test het eens zou ik zeggen.

Sorry, ik zit heel ergens anders op te reageren.
Vergeet even mijn laatste bijdragen.
Gewijzigd op 17/08/2012 14:41:21 door - SanThe -
 
Albert de Wit

Albert de Wit

17/08/2012 14:41:27
Quote Anchor link
geen probleem hoor ;)

@TS

wat is het resultaat nu?
 
Eddy E

Eddy E

17/08/2012 14:53:37
Quote Anchor link
Mocht je alles af hebben, en het werkt.... kijk dan eens naar substr_count().
Raar van de LOI dat ze zo ouderwets werken terwijl het dus veel korter kan (welliswaar zonder for-lus, maar die is niet nodig).
 
Albert de Wit

Albert de Wit

17/08/2012 14:56:07
Quote Anchor link
LOI had dit lesmateriaal waarschijnlijk in 2005 al, en gebruiken ze over 5 jaar nog denk ik. Als je wilt leren programmeren, niet op zoek gaan naar een school (tenzij je het papiertje graag wilt hebben), maar google. Fora als dit zijn je grootste vriend op het gebied van het leren van programmeren.
 
Kris Peeters

Kris Peeters

17/08/2012 14:56:41
Quote Anchor link
Leuk om nog eens heredoc notatie te zien.

Zeg, waarom moet dat met een for?

strpos geeft je de locatie van het zoekresultaat. Wat je daarna moet doen, is de zoekopdracht pas beginnen vanaf de positie van het vorige zoekresultaat (1 karakter verder). Anders blijf je maar het zelfde vinden. Dus het vorige zoekresultaat + 1 geef je mee als derde parameter.

Hier een voorbeeld, met een while.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$dnatotal
= $dna1.$dna2;
$newPos = 0;
while(FALSE !== $newPos = strpos($dnatotal, 'AAAAAA', $newPos)) {
  echo $newPos . '<br>';
  $newPos++;  // je zet de naald/index 1 karakter verder dan het begin van het zoekresultaat
}
?>


en aangezien een for niet veel meer is dan een speciale while ... kan je er dit van maken ook:

for(;FALSE !== $newPos = strpos($dnatotal, 'AAAAAA', $newPos);) {
Gewijzigd op 17/08/2012 15:02:04 door Kris Peeters
 
- SanThe -

- SanThe -

17/08/2012 15:01:55
Quote Anchor link
Als we dan toch gaan weggeven:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$dna1
= "TATAGTTTCCTCTCTATAT";
$dna2 = <<<DNA
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA<BR>
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA
DNA
;

$dnatotal = $dna1.$dna2;
$length = strlen($dnatotal);

for($count = 0; $count < $length; $count++)
{

   if(substr($dnatotal, $count,6) == 'AAAAAA') echo $count."<BR>";
}

?>
 
Wouter J

Wouter J

17/08/2012 15:02:01
Quote Anchor link
Kris, ik had ong. hetzelfde idee:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$dnatotal
= $dna1.$dna2;
$positions = array();
$pos = 0;

while(false !== ($pos = strpos($dnatotal, 'AAAAAA', $pos)) && $positions[] = $pos++);

// $positions bevat alle posities
var_dump($positions);
?>


Maar misschien is dit nog iets te ver gegrepen voor de topic starter.

Edit:
Of zonder array:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
while(false !== ($pos = strpos($dnatotal, 'AAAAAA', $pos)) && print($pos++.'<br>'));
Gewijzigd op 17/08/2012 15:09:51 door Wouter J
 
Kris Peeters

Kris Peeters

17/08/2012 15:08:50
Quote Anchor link
Ja.

Zeg, wat was de opgave eigenlijk precies?
Wat moet er precies wel gebruikt worden en wat precies niet?

Want als het via een for-lus moet, verwachten ze waarschijnlijk iets met substr, zoals SanThe toont.

Als het met strpos mag ... staat die for-lus daar eigenlijk niets te doen.

---
EDIT:
nu ik het bekijk, had ik mijn code beter met een for gemaakt.
Dus laat me herformuleren: die for staat daar wel iets te doen, maar wordt niet gebruikt zoals men dit normaal gebruikt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
for($newPos = 0; FALSE !== $newPos = strpos($dnatotal, 'AAAAAA', $newPos; $newPos++)) {
echo $newPos . '<br>';
}

?>
Gewijzigd op 17/08/2012 15:36:20 door Kris Peeters
 
Niek Limpens

Niek Limpens

17/08/2012 15:47:22
Quote Anchor link
De volledige opgave:

Oefenopgave 1
Voor het Nederlands Forensisch Instituut schrijft u een programma dat 1 string DNA samenvoegt met een DNA string welke bestaat uit meerdere regels. Het programma heet compdna.php . Gebruik de onderstaande Strings voor het programma:

String1 = TATAGTTTCCTCTCTATAT
String2 = AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA
AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA
Test het programma met behulp van Wampserver.

LeesopdrachtLees paragraaf 8.2 van het boek.

Oefenopgave 2 Maak een uitbreiding op compdna.php. De bedoeling van de uitbreiding is dat met behulp van een for lus de string onderzocht wordt op 'AAAAAA'. De leiding van het NFI wil graag dat bij iedere gevonden 'AAAAAA' de positie wordt afgedrukt.
Noem het programma compdna2.php

Ik gebruik het boek http://www.sdu.nl/catalogus/9789039522813 (kreeg ik bijgeleverd bij de LOI Cursus). Dit is toch niet erg verouderd? Ik merk wel bij die opgaven van LOI dat er vaak achterhaalde dingen tussen zitten terwijl je ook op een simpelere/snellere manier opgaven kunt maken.

In ieder geval bedankt voor jullie snelle reacties, ik ga de opgave eens even aanpassen aan de hand van jullie tips. Als ik vragen heb laat ik het wel weten!

Toevoeging op 17/08/2012 15:59:43:

for (;FALSE !== $newPos = strpos($dnatotal, 'AAAAAA', $newPos);) {

Wat doet FALSE precies hier? Ik begrijp inderdaad dat je na het zoekresultaat verder moet zoeken vanaf de positie van het vorige zoekresultaat. De bovenste code zorgt hier blijkbaar voor (en de $newPos++ uiteraard). Ik begrijp alleen niet wat ;FALSE!== $newPos = strpos..etc. doet hier! Kan iemand dit uitleggen?
 
Kris Peeters

Kris Peeters

17/08/2012 16:15:14
Quote Anchor link
strpos geeft je een getal terug met de positie van het gevonden resultaat.

Dat kan 15 zijn, maar kan even goed 0 zijn (direct, vanaf het eerste karakter prijs).

Om duidelijk te maken dat de functie niets heeft gevonden, geeft het een FALSE terug.

Dus, laat je de while (of for) zoeken totdat strpos een FALSE terug geeft.

Let er op: 0 en FALSE worden nogal vlug als gelijk aanzien
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if (0 == FALSE) echo 'vreemd, he';
?>


met een === gebeurt dat niet (de negatie is dan !==). Dan wordt ook gekeken of het type van beide gelijk zijn.
Gewijzigd op 17/08/2012 16:48:44 door Kris Peeters
 
Niek Limpens

Niek Limpens

17/08/2012 16:25:46
Quote Anchor link
Ah, dat verklaart een hoop. Thanks!!
 
Wouter J

Wouter J

17/08/2012 16:33:13
Quote Anchor link
Ik weet niet hoever je bent met je stof, dus begin ik ergens aan het begin.

In PHP heb je 2 hele speciale waarden: true en false. Deze worden booleans (afgekort bool) genoemd. True staat gelijk aan een succes en false aan een niet succesvol iets.
Stel dat je de functie isset gebruikt. Deze kijkt of een variabele geset is (ingesteld is). Als dat zo is geeft hij true terug (het is een succes) mocht dit niet zo zijn dan komt er een false terug.

Onze functie, strpos, kan meerdere waardes terug geven. Zoals je in de PHP documentatie kan zien geeft deze de positie terug en als er niks gevonden is false.

We willen de loop doorlaten gaan totdat de strpos niks meer kan vinden en dus false retourneert. De voorwaarde voor het doorlaten gaan van een loop of het stoppen kun je plaatsen in het 2e gedeelte van de for conditie. Als deze true is, daar heb je hem weer, loopt de loop door, anders stopt ie.
In jou eerste code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
for ($count = 0; $count <= $length; $count++) {
    // ...
}
?>

Jou voorwaarde van het door laten lopen van de loop is dat $count kleiner of gelijk moet zijn aan $length. Als dat zo is geeft $count <= $length namelijk true (een succes) terug en anders false en stopt de loop.

Nu weer terug naar ons voorbeeld, we willen de loop laten lopen zolang strpos iets kan vinden, en dus iets anders dan false retourneert. Nou dat doen we:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
for ($i = 0; false != strpos($dnatotal, 'AAAAAA', $i); $i++) {
    // ...
}
?>

Maar nu hebben we een probleem. Die domme PHP taal accepteert neemt waardes als 0 of '' namelijk ook aan voor false. Dus mocht PHP de strpos positie 0 teruggeven stopt de loop ook. Daarom moeten we !== gaan gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
for ($i = 0; false != strpos($dnatotal, 'AAAAAA', $i); $i++) {
    // ...
}
?>


Wat willen we nu in de loop doen? We willen de positie echoën, dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
for ($i = 0; false != strpos($dnatotal, 'AAAAAA', $i); $i++) {
    echo strpos($dnatotal, 'AAAAAA', $i);
}

?>

Maar zie je hier het dubbele werk? We schrijven 2x het 'strpos($dnatotal, 'AAAAAA', $i)' gedeelte. Dat betekend dat we 'AAAAAA' op 2 plaatsen moeten aanpassen als we naar 'BBBBBB' willen zoeken. En nog erger, PHP zal 2 keer de hele string af moeten zoeken naar 'AAAAAA'.

Daarom slaan we de eerste waarde op in een variabele. Vervolgens moeten we kijken of die variabele geen false bevat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
for ($i = 0; false != ($pos = strpos($dnatotal, 'AAAAAA', $i)); $i++) {
    echo $pos;
}

?>

Zie je wat er veranderd is? We doen nu 2 dingen op 1 regel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$pos
= strpos($dnatotal, 'AAAAAA', $i);
false != $pos;

// kun je ook schrijven als
false != $pos = strpos($dnatotal, 'AAAAAA', $i);
?>


En dan zijn we uit gekomen bij onze laatste code.
 
Niek Limpens

Niek Limpens

17/08/2012 16:42:25
Quote Anchor link
Bedankt Wouter voor je uitgebreide uitleg! Het is me nu helemaal duidelijk!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.