abonnement Unibet Coolblue Bitvavo
  FOK!-Schrikkelbaas woensdag 28 september 2005 @ 20:42:37 #2
1972 Swetsenegger
Egocentrische Narcist
pi_31009360
Ik heb een tabel catagorieen, waar op dit moment 17 verschillende in staan.
En ik heb een tabel met items, welke op die catagorieen ingedeeld zijn.

Tabel catagorie
1
2
3
4
5
6
|ID|Catagorie| 
+--+---------+ 
|1 |Eten     | 
|2 |Sport    | 
|3 |Studie   | 
|4 |etc, etc | 


Tabel Item
1
2
3
4
5
6
7
|ID|Catagorie|Item     |Naam  | 
+--+---------+---------+------+ 
|1 |Eten     |Montignac|Arie  | 
|2 |Sport    |Voetbal! |Tinus | 
|3 |Studie   |PHP      |Kees  | 
|4 |Eten     |Moermans |Bertus| 
|5 |etc      |etc      |etc   | 

Nu wil ik op de frontpage de laatste 3 records uit tabel item, per catagorie.

Het makkelijkst is zoiets als:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$query
="SELECT * FROM catagorie";
$result=mysql_query($query);
while(
$row=mysql_fetch_assoc($result)){

  echo
"<div>".$row[catagorie]."<br />";
  
$query_item="SELECT * FROM item WHERE catgorie='".$row['catgorie']."' LIMIT 3";
  
$result_item=mysql_query($query_item);
  while(
$record=mysql_fetch_assoc($result_item)){
    echo
$record[item]."<br />";
  }
  echo
"</div>";
}
?>


Maar dit betekent 18 queries per hit op de frontpage, en dat kan alleen maar meer worden als er meer catagorieen komen.

Iemand een handigere oplossing?
pi_31009476
Volgens mij kun je het in één query doen door een LEFT JOIN te doen op `Catagorie`.

categorie overigens?
  FOK!-Schrikkelbaas woensdag 28 september 2005 @ 20:48:33 #4
1972 Swetsenegger
Egocentrische Narcist
pi_31009561
quote:
Op woensdag 28 september 2005 20:46 schreef Nevermind het volgende:
Volgens mij kun je het in één query doen door een LEFT JOIN te doen op `Catagorie`.
Volgens mij haal ik dan gewoon de laatste 3 records van 1 categorie uit de tabel. EN ik moet 17 maal de laatste 3 hebben.
quote:
categorie overigens?
stiekem heb ik helemaal geen tabel catagorie of categorie, maar heeft deze een compleet andere naam. Dit was echter makkelijker uitleggen
pi_31009636
best pittig trouwens, kun je ook queries in queries doen? anders lijkt me dit heel erg omslachtig en zul je idd aan die 18 queries blijven zitte
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!-Schrikkelbaas woensdag 28 september 2005 @ 21:49:53 #6
1972 Swetsenegger
Egocentrische Narcist
pi_31009824
quote:
Op woensdag 28 september 2005 20:50 schreef Chandler het volgende:
best pittig trouwens, kun je ook queries in queries doen? anders lijkt me dit heel erg omslachtig en zul je idd aan die 18 queries blijven zitte
Subqueries zijn vanaf mysql 4.1 mogenlijk.
Op de server draait 4.0.27 ofzo

Misschien ter verduidelijking, dit wil ik dus: www.marktplaats.nl
Daar zie je 31 categorieën, met de 5 laatste items. Ik kan me niet voorstellen dat markplaats 32 queries draait op de frontpage, met de hits die zij hebben geeft dat een enorme belasting op je db server denk ik.

Er zou dus een makkelijkere oplossing moeten zijn, of stel ik me nu gewoon teveel voor van een simpele select query mbt serverload?
pi_31010654
Een extra join op products (items bij jou) bevat de producten die boven het product staan (p2.ProductName <= p.ProductName). Dat aantal tel ik, en mag niet groter zijn dan 5.

1
2
3
4
5
6
7
SELECT c.CategoryID, c.CategoryName, p.ProductID, p.ProductName
FROM products p
INNER JOIN categories c ON c.CategoryID = p.categoryID
INNER JOIN products p2 ON p2.CategoryID = c.CategoryID AND p2.ProductName <= p.ProductName
GROUP BY p.ProductID, p.ProductName, c.CategoryID, c.CategoryName
HAVING COUNT(p2.ProductID) <= 5
ORDER BY c.CategoryName, p.ProductName


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CategoryID CategoryName ProductID ProductName
1          Beverages    1         Chai
1          Beverages    2         Chang
1          Beverages    39        Chartreuse verte
1          Beverages    38        Côte de Blaye
1          Beverages    24        Guaraná Fantástica
2          Condiments   3         Aniseed Syrup
2          Condiments   4         Chef Anton's Cajun Seasoning
2          Condiments   5         Chef Anton's Gumbo Mix
2          Condiments   15        Genen Shouyu
2          Condiments   6         Grandma's Boysenberry Spread
3          Confections  48        Chocolade
3          Confections  26        Gumbär Gummibärchen
3          Confections  49        Maxilaku
3          Confections  25        NuNuCa Nuß-Nougat-Creme
3          Confections  16        Pavlova
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas woensdag 28 september 2005 @ 22:17:41 #8
1972 Swetsenegger
Egocentrische Narcist
pi_31010770
quote:
Op woensdag 28 september 2005 22:14 schreef SuperRembo het volgende:
bevat de producten die boven het product staan
Ik ga 'm zometeen ff uitproberen
Maar deze zinsnede begrijp ik even niet
  woensdag 28 september 2005 @ 22:22:36 #9
71919 wonderer
Hung like a My Little Pony
pi_31010923
Om even terug te komen op dat watermerk, trim() loste het rare ding op.

Nu wil ik alleen nog even weten hoe ik met andere lettertypen kan klooien. Kan ik die zelf op de server zetten, of moeten die er al staan, en zo ja, hoe kom ik erachter welke fonts er op de server geinstalleerd zijn?
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
  FOK!-Schrikkelbaas woensdag 28 september 2005 @ 22:22:47 #10
1972 Swetsenegger
Egocentrische Narcist
pi_31010926
Sterker nog, ik begrijp geen moer van je query
Even kijken, in ieder geval ga je met tabel aliassen werken. Hmz, eens even kijken hoe ik dat voor mijn probleem ga gebruiken. Plus ook dat ik in mijn tabel item niet de categorie id heb opgeslagen, maar echt de catagorie naam

-Edit-
WHAAAH! Het werkt!!!
Ik snap er werkelijk ergnstig weinig van
Kan je 'm ontleden SR? Ik wil 'm graag ook snappen eigenlijk.

[ Bericht 22% gewijzigd door Swetsenegger op 28-09-2005 22:31:50 ]
pi_31011425
quote:
Op woensdag 28 september 2005 22:22 schreef Swetsenegger het volgende:
Sterker nog, ik begrijp geen moer van je query
Ja, hij is wat lastig om zo ff kort uit te leggen. Wat ook nog belangrijk is, is dat de joinconditie van de 2e products tabel (p2.CategoryID = c.CategoryID AND p2.ProductName <= p.ProductName) en de sortering van het resultaat (ORDER BY c.CategoryName, p.ProductName) bij elkaar horen. Misschien moet je zelf ff spelen met de query, en 'm eens uitvoeren met de COUNT(p2.ProductID) in 't resultaat of een keerte zonder group bij.
quote:
Even kijken, in ieder geval ga je met tabel aliassen werken.
Dat is om het kort en overzichtelijk te houden. Ik gebruik ook 2 x de tabel products, dus ik moet wel een alias gebruiken.
quote:
Hmz, eens even kijken hoe ik dat voor mijn probleem ga gebruiken. Plus ook dat ik in mijn tabel item niet de categorie id heb opgeslagen, maar echt de catagorie naam
Ai, ik hoopte dat dat bij het vereenvoudigde voorbeeld hoorde
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas woensdag 28 september 2005 @ 22:41:32 #12
1972 Swetsenegger
Egocentrische Narcist
pi_31011698
quote:
Op woensdag 28 september 2005 22:35 schreef SuperRembo het volgende:

[..]

Ja, hij is wat lastig om zo ff kort uit te leggen. Wat ook nog belangrijk is, is dat de joinconditie van de 2e products tabel (p2.CategoryID = c.CategoryID AND p2.ProductName <= p.ProductName) en de sortering van het resultaat (ORDER BY c.CategoryName, p.ProductName) bij elkaar horen. Misschien moet je zelf ff spelen met de query, en 'm eens uitvoeren met de COUNT(p2.ProductID) in 't resultaat of een keerte zonder group bij.
[..]

Dat is om het kort en overzichtelijk te houden. Ik gebruik ook 2 x de tabel products, dus ik moet wel een alias gebruiken.
[..]

Ai, ik hoopte dat dat bij het vereenvoudigde voorbeeld hoorde
Ja ik ben al aan het experimenteren, want het gaat niet helemaal goed.
Hij pakt inderdaad 3 records (waar er tenminste 3 records zijn in de categorie)... maar niet de 3 laatste.

Het lijkt wel of hij ze willekeurig pakt.
pi_31012133
Overigens zou ik het anders hebben aangepakt en bij het toevoegen van een nieuwe item een extra veld updaten dat van 1 t/m 5 loopt en de positie van dat item in de lijst weergeeft. Bij het toevoegen van een item hoef je alleen dat veld te incrementen indien het lager is dan 6, en kun je in de query sorteren op dat veld (ASC weliswaar) en een WHERE-clause maken met veld < 6 beetje een hack, maar het werkt wel.
  FOK!-Schrikkelbaas woensdag 28 september 2005 @ 22:58:00 #14
1972 Swetsenegger
Egocentrische Narcist
pi_31012372
Ok Ik heb SR's query nu zover dat hij de EERSTE 3 per catagorie pakt

(Hij pakte eerst 'willekeurig' omdat ik op een title aan het sorteren was Dan krijg je gewoon de titels welke beginnen met A, vervolgens met B per categorie terug natuurlijk, dom dom dom )

Nu nog de LAATSTE 3.
De query is nu dit (met de orignele tabel namen. genre is gelijk aan categorie en ad is gelijk aan item.)

1
2
3
4
5
6
7
SELECT g.genre, a.title, a.ad_id
FROM genre g
INNER JOIN ad a ON a.genre = g.genre
INNER JOIN ad a2 ON a2.genre = g.genre AND a2.ad_id <= a.ad_id
GROUP BY a.title
HAVING COUNT(a2.ad_id) <= 3
ORDER BY g.genre, a.ad_id DESC


-edit

Swets..., de volgende keer ff dieper nadenken

1
2
3
4
5
6
7
SELECT g.genre, a.title, a.ad_id
FROM genre g
INNER JOIN ad a ON a.genre = g.genre
INNER JOIN ad a2 ON a2.genre = g.genre AND a.ad_id <= a2.ad_id
GROUP BY a.title
HAVING COUNT(a2.ad_id) <= 3
ORDER BY g.genre, a.ad_id DESC


Bedankt voor het meedenken!
pi_31017865
SuperRembo, dat ziet er weer eens super Topf uit man!... wat een knowledge
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31017912
Nog even ter verduidelijjking. Als je wel subquery's kan gebruiken, dan zou je de query zo schrijven:

1
2
3
4
5
6
7
8
9
SELECT c.CategoryID, c.CategoryName, p.ProductID, p.ProductName,
FROM products p
INNER JOIN categories c ON c.CategoryID = p.categoryID
WHERE (
   SELECT COUNT(*) 
   FROM products p2 
   WHERE p2.CategoryID = c.CategoryID AND p2.ProductName <= p.ProductName
) <= 5
ORDER BY c.CategoryName, p.ProductName
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas donderdag 29 september 2005 @ 09:42:28 #17
1972 Swetsenegger
Egocentrische Narcist
pi_31019441
quote:
Op donderdag 29 september 2005 07:26 schreef Chandler het volgende:
SuperRembo, dat ziet er weer eens super Topf uit man!... wat een knowledge
Het verbaast me altijd dat ik voor echt complexe queries en vraagstukken hier WEL een antwoord of een goed idee krijg van mensen als SuperRembo en Roonaan, terwijl op phpfreakz.nl, bij uitstek de php vraagbaak, meestal niet.
pi_31020241
quote:
Op donderdag 29 september 2005 09:42 schreef Swetsenegger het volgende:

[..]

Het verbaast me altijd dat ik voor echt complexe queries en vraagstukken hier WEL een antwoord of een goed idee krijg van mensen als SuperRembo en Roonaan, terwijl op phpfreakz.nl, bij uitstek de php vraagbaak, meestal niet.
Yups, ik dank ook veel aan hun
  FOK!-Schrikkelbaas donderdag 29 september 2005 @ 11:20:56 #19
1972 Swetsenegger
Egocentrische Narcist
pi_31021829
quote:
Op donderdag 29 september 2005 10:16 schreef Darkomen het volgende:

[..]

Yups, ik dank ook veel aan hun
Ik zeg, we maken een walk of fame in de OP
pi_31022269
Altijd baas boven baas, he persoonlijk ga ik met PHP-problemen (if any) altijd op Fok! zoeken en problemen in andere talen vuur ik wel op Tweakers af
  FOK!-Schrikkelbaas donderdag 29 september 2005 @ 11:42:25 #21
1972 Swetsenegger
Egocentrische Narcist
pi_31022490
quote:
Op donderdag 29 september 2005 11:35 schreef JeRa het volgende:
Altijd baas boven baas, he persoonlijk ga ik met PHP-problemen (if any) altijd op Fok! zoeken en problemen in andere talen vuur ik wel op Tweakers af
Van de tweakers heb ik ook een aantal keren goede suggesties gehad.

Alleen zijn ze daar minder geduldig en uitleggerig
pi_31053306
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
27
28
29
30
<?php
if($_GET['id'] == 'link')

  include("link.php");
}   
elseif($_GET['id'] == 'news')

  include("news.php");
}   
elseif($_GET['id'] == 'ticket')

  include("ticket.php");
}
elseif($_GET['id'] == 'contact')

  include("contact.php");
}
elseif($_GET['id'] == 'link_add')

  include("link_add.php");
}
elseif($_GET['id'] == 'link_edit')

  include("link_edit.php");
}
else
{
   include("main.php");
}
?>


hier roep ik de pagina's mee aan maar als ik nu zeg maar link_edit wil doen komt er ?id=3 achter zeg maar omdat ik die bepaalde link wil wijzigen.
dus dan wordt de voledige url index.php?id=link_edit?id=3 en dat werkt niet.
Hoe zou ik dat het beste kunnen oplossen?

Mijn dank is groot
  vrijdag 30 september 2005 @ 11:31:06 #23
125047 Lamme_Sterfkanarie
tweet tweet en dan ineens niet
pi_31053718
index.php?id=link_edit&id=3

let op de &

[ Bericht 77% gewijzigd door Lamme_Sterfkanarie op 30-09-2005 11:38:00 ]
Ik heb het godverdomme gehad met die onkunde van je!
  vrijdag 30 september 2005 @ 11:55:07 #25
125047 Lamme_Sterfkanarie
tweet tweet en dan ineens niet
pi_31054525
ik zou het trouwens zo oplossen:

1
2
3
4
5
6
7
8
9
10
<?php
$files
= array("bestand1", "bestand2", "bestand3");

if(isset(
$_GET['file'] && in_array($_GET['file'], $files)){
    include(
$_GET['file'] . ".php");
}
else {
   include(
"main.php");
}
?>


mogelijke bugs daargelaten, niet getest
je hebt nu trouwens ook 2x id in je url staan. dat gaat ook niet werken vandaar dat ik de eerste id hernoemd naar file heb.
Ik heb het godverdomme gehad met die onkunde van je!
  FOK!-Schrikkelbaas vrijdag 30 september 2005 @ 12:33:58 #27
1972 Swetsenegger
Egocentrische Narcist
pi_31055931
quote:
Op vrijdag 30 september 2005 11:55 schreef Lamme_Sterfkanarie het volgende:
ik zou het trouwens zo oplossen:
[ code verwijderd ]

mogelijke bugs daargelaten, niet getest
je hebt nu trouwens ook 2x id in je url staan. dat gaat ook niet werken vandaar dat ik de eerste id hernoemd naar file heb.
Of met een switch
pi_31057154
Ik maak meestal gebruik van de methode die Lamme_Sterfkanarie voordraagt, in combinatie met een levenshtein() methode om bij een verkeerde waarde van de pagina-id de dichtstbijzijnde pagina te vinden (ofwel, gmaes wordt games mocht de gebruiker een typfout maken).

Het nadeel van een switch vind ik dat je dan voor elke pagina een case moet maken, terwijl je het nu gewoon in een array gooit en het werkt. Vroeger gebruikte ik wel een switch om voor het includen van de pagina nog wat checks te doen, maar aangezien die altijd betrekking hebben op de pagina zelf had ik besloten dat ik dat voortaan in de include doe dan ziet het er imo ook wat netter uit.
  vrijdag 30 september 2005 @ 13:16:13 #29
125047 Lamme_Sterfkanarie
tweet tweet en dan ineens niet
pi_31057218
daarom gebruik ik de constructie zoals ik hem heb ook altijd. Bij een nieuwe pagina hoef je alleen maar de array te veranderen. Of die nu hardcoded is of dat je die in elkaar draait met informatie uit een database het blijft werken
Ik heb het godverdomme gehad met die onkunde van je!
pi_31061616
ik heb nog een vraagje:

Ik wil de gegevens wat doormiddel van een formulier ingevoerdt wordt controleren.
Nu heb ik al wat op internet gezocht en vondt dit
1if(empty($bericht))

Is dit een beetje goed of hebben jullie andere suggesties?
pi_31063675
De methode die je kiest om je input te controleren, hangt af van wat je wilt dat er gecontroleerd wordt

Ik hanteer bij berichten (voor e-mailformulieren) iets als dit:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
//Bericht in variabele stoppen
$bericht = $_POST['bericht'];

//Whitespaces voor en na het bericht weghalen
$bericht = trim($bericht);

//Check of het bericht wel is ingevuld (en een redelijke lengte heeft)
if (strlen($bericht) &lt; 6) {
    ...
}
?>

Maar zoals ik al zei, het ligt maar net aan wat je wilt controleren
  vrijdag 30 september 2005 @ 18:35:37 #32
71919 wonderer
Hung like a My Little Pony
pi_31064261
Ik was dus bezig met een gallery en ik dacht, laat ik een functie maken die in ieder geval de juiste mappen vast aanmaakt, met de juiste rechten, zodat ik alleen de plaatjes nog maar hoef te uploaden. Mja. Als ik dat gewoon via ftp doe, is de user/group mijn gebruikersnaam, maar als ik het via een script doe, wordt dat apache en kan ik er daarna niks meer mee.

Weet iemand hoe ik dit beter kan aanpakken? Group/user veranderen ofzo?
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_31064405
Die gallery gaat met de rechten van Apache draaien. Zorg er dus voor dat je in je script die directory aanmaakt en 'm goed chmod(). Dit hoef je als het goed is dus maar een keer te doen, en dan staan de rechten goed

Overigens, als je in FTP de rechten op 777 zet maakt het niet uit wat de gebruikersnaam is, want dan kan Apache er ook bij. Dan hoef je alleen nog maar te hopen dat je niet op een shared webhost zit waarbij iedereen kan rondkijken
pi_31064844
quote:
Op donderdag 29 september 2005 09:42 schreef Swetsenegger het volgende:

[..]

Het verbaast me altijd dat ik voor echt complexe queries en vraagstukken hier WEL een antwoord of een goed idee krijg van mensen als SuperRembo en Roonaan, terwijl op phpfreakz.nl, bij uitstek de php vraagbaak, meestal niet.
Best raar eing. want hier zou je toch minder / slechtere reacties verwachten hehe. Maar goed denk dat alleen maar de mensen met meer dan begin basis reageren dan daar op phpfreakz, daar is het een komen en gaan van ppl die snel ff hun oplossing willen weten (veel noobz) enzo, heb je hier niet
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 30 september 2005 @ 19:04:58 #35
71919 wonderer
Hung like a My Little Pony
pi_31065095
quote:
Op vrijdag 30 september 2005 18:40 schreef JeRa het volgende:
Die gallery gaat met de rechten van Apache draaien. Zorg er dus voor dat je in je script die directory aanmaakt en 'm goed chmod(). Dit hoef je als het goed is dus maar een keer te doen, en dan staan de rechten goed

Overigens, als je in FTP de rechten op 777 zet maakt het niet uit wat de gebruikersnaam is, want dan kan Apache er ook bij. Dan hoef je alleen nog maar te hopen dat je niet op een shared webhost zit waarbij iedereen kan rondkijken
Het aanmaken van de directories gaat wel goed, ik kan alleen daarna niks meer met die mappen doen via een FTP programma, omdat ik de rechten niet heb. Kan ze niet weggooien, niks uploaden, niks aanpassen...
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_31065516
quote:
Op vrijdag 30 september 2005 19:04 schreef wonderer het volgende:

[..]

Het aanmaken van de directories gaat wel goed, ik kan alleen daarna niks meer met die mappen doen via een FTP programma, omdat ik de rechten niet heb. Kan ze niet weggooien, niks uploaden, niks aanpassen...
Dan moet je die bestanden ná het uploaden en verplaatsen naar die directory ook de goede rechten (777 waarschijnlijk) geven. Dan kun je ze ook via FTP wijzigen/verwijderen/whatever. De rechten die je aan een directory geeft zijn namelijk alleen voor die node, de directory dus, van toepassing en niet op de onderliggende directories of bestanden.

Of je maakt natuurlijk een adminpanel in je gallery
pi_31065768
quote:
Op woensdag 28 september 2005 22:58 schreef Swetsenegger het volgende:
Ok Ik heb SR's query nu zover dat hij de EERSTE 3 per catagorie pakt

(Hij pakte eerst 'willekeurig' omdat ik op een title aan het sorteren was Dan krijg je gewoon de titels welke beginnen met A, vervolgens met B per categorie terug natuurlijk, dom dom dom )

Nu nog de LAATSTE 3.
De query is nu dit (met de orignele tabel namen. genre is gelijk aan categorie en ad is gelijk aan item.)
[ code verwijderd ]

-edit

Swets..., de volgende keer ff dieper nadenken
[ code verwijderd ]

Bedankt voor het meedenken!
Dat HAVING(COUNT()) gedoe, ik wist niet dat je dat als LIMIT kon gebruiken? of doet het dat niet? het leek mij namelijk dat COUNT(), ook bij een GROUP BY, een soort van constante was?
  vrijdag 30 september 2005 @ 22:04:10 #38
71919 wonderer
Hung like a My Little Pony
pi_31070609
quote:
Op vrijdag 30 september 2005 19:22 schreef JeRa het volgende:

[..]

Dan moet je die bestanden ná het uploaden en verplaatsen naar die directory ook de goede rechten (777 waarschijnlijk) geven. Dan kun je ze ook via FTP wijzigen/verwijderen/whatever. De rechten die je aan een directory geeft zijn namelijk alleen voor die node, de directory dus, van toepassing en niet op de onderliggende directories of bestanden.

Of je maakt natuurlijk een adminpanel in je gallery
Ik kan ze al niet eens uploaden, laat staan veranderen. En ik heb juist mijn eigen gallery geschreven omdat ik het een voor een toevoegen van images zo irritant vond. Hij leest nou gewoon de directory uit.

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
27
28
29
30
31
32
33
34
35
36
<?php
function create_gallery($code,$name,$fotograaf,$email,$date,$user)
{
if(!
is_dir($code)){
  
mkdir($code,0777);
  
mkdir($code.'/images',0777);
  
mkdir($code.'/thumbnails',0777);
  
mkdir($code.'/caps',0777);
  
$file=$code.'/header.txt';
  
copy('under.jpg',$code.'/thumbnails/first.jpg');
  
$entry=$name."\n";
  if(
$email!=''){
   
$entry.='<a href="mailto:'.$email.'">'.$fotograaf.'</a>'."\n";
  }
  else{
   
$entry.=$fotograaf."\n";
  }
  
$entry.=$date."\n";
  
$entry.=$user."\n";

  if (!
$handle = fopen($file, 'w+')) {
   
$msg='Fout! Kan het bestand '.$file.' niet openen.';
   exit;
  }
  if (!
fwrite($handle, $entry)) {
   
$msg='Fout! Kan het bestand '.$file.' niet beschrijven.';
   exit;
  }
  
fclose($handle);
}
else{
  
$msg='Deze galerie bestaat al, kies een andere naam!';
}
return
$msg;
}
?>


Misschien kan ik hier wat mee?
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_31071568
Direct onder die regel met 'copy' moet je dit zetten:

chmod($code . '/thumbnails/first.jpg', 0777);

En direct onder de regel met 'fclose' dit:

chmod($file, 0777);

Ik denk dat je dan een stuk verder komt
  vrijdag 30 september 2005 @ 23:51:01 #40
71919 wonderer
Hung like a My Little Pony
pi_31074088
Werkt niet. Ik kan met een gewoon FTP programma niet uploaden. Ik zie ook dat ondanks de rechten die ik tijdens het maken heb toegekend, de werkelijke rechten op drwxr-xr-x liggen... ik mis de w mogelijkheid en die kan ik niet handmatig toevoegen, want ik behoor als ftp user niet tot die groep.

Hij maakt alles wel netjes aan, maar ik kan er daarna niks meer mee.
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_31074383
Het lijkt alsof Apache een mask heeft gekregen waardoor het geen write rechten kan instellen voor group en others...je zou even kunnen proberen na te vragen aan de beheerder van de server of daar iets aan te doen is, maar anders zul je toch echt een adminpanel moeten maken
  zaterdag 1 oktober 2005 @ 00:23:59 #42
71919 wonderer
Hung like a My Little Pony
pi_31074919
Hm, die 0777 weghalen bij mkdir en dan chmod(directory,0777) werkt WEL. Maar toch raar, zo'n omweg
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_31078634
Van deze pagina:
quote:
The mode is also modified by the current umask, which you can change using umask().
Ik gok dat dat niet van toepassing is op chmod()
pi_31078781
Ik ben vanaf het begin af aan via een tutorial een upload scriptje aan het maken... Ook al heb ik die site netjes gevolgd... Na de eerste simpele stap wertke het al niet:

index.php:

1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
<title>Upload test form</title>
</head>
<body>
<form action="getfile.php" method="post"><br>
File: <input type="file" name="uploadFile"><br>
<input type="submit" value="Upload File">
</form>
</body>
</html>


getfile.php:

1
2
3
4
5
6
7
8
9
10
<html>
<head>
<title>Upload test</title>
</head>
<body>
<?php
  move_uploaded_file($_FILES['uploadFile'] ['tmp_name'], "../uploads/{$_FILES['uploadFile'] ['name']}")
?>
</body>
</html>


Wat doe ik nu al fout?
pi_31078833
Er horen in ieder geval geen spaties tussen $_FILES['uploadFile'] en ['tmp_name'].

Volgens mij hoort er nog enctype="multipart/form-data" in de form-tag.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31078864
quote:
Op zaterdag 1 oktober 2005 09:47 schreef SuperRembo het volgende:
Er horen in ieder geval geen spaties tussen $_FILES['uploadFile'] en ['tmp_name'].

Volgens mij hoort er nog enctype="multipart/form-data" in de form-tag.
bedankt. dat waren de twee fouten! het werkt nu!
  FOK!-Schrikkelbaas zaterdag 1 oktober 2005 @ 17:31:40 #47
1972 Swetsenegger
Egocentrische Narcist
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 11:51:16 #48
1972 Swetsenegger
Egocentrische Narcist
pi_31108846
quote:
Op zaterdag 1 oktober 2005 17:31 schreef Swetsenegger het volgende:
Voor de echte nerds
http://www.phpfreakz.nl/forum.php?forum=5&page=1
Ik wil deze winnen eigenlijk, dus ik crosspost 'm hier.
Als we een korte oplossing hebben, post ik het antwoord als het fok-team
quote:
Beste PHP-ers,


--[ PHP Golf
Een nieuwe editie van PHP Golf!

--[ Wat is PHP Golf?
De bedoeling is een PHP script te maken met zo min mogelijk karakters.
Dus zo min mogelijk letters, nummers, spaties, newlines en dergelijke.
Met het script moet je een doelstelling bereiken.
We gaan ervan uit dat je de recenste PHP 4.x, op het moment 4.4,
versie hebt en standaard php.ini configuratie. Tenzij anders vermeld.
(Standaard: register_globals = off)

Het script moet op UNIX-gebaseerde en Windows systemen werken.

--[ Voor wie is PHP Golf?
De competitie is voor iedereen toegankelijk.

--[ Inzendingen
Je kunt je oplossing sturen naar:

phpgolf [at] gmail.com
(Disclaimer: je e-mail zal niet worden gebruikt voor
spam of worden doorgegeven aan derden)

--[ Doelstelling
Je moet de input veranderen in hoofdletters en in kleine letters, maar met
een twist. We gaan het camel-talk stijl doen. We gaan ervan uit dat de input
alleen uit A-Za-z bestaat. De input komt van een formulier vandaan.
Dit is het formulier:

1
2
3
4
5
6
7
8
9
10
11
12
13
<html> 
<head> 
<title>PHP Golf #5</title> 
</head> 

<body> 
<form method="POST" action="camel.php"> 
<input type="hidden" name="dummy"> 
<input type="text" name="string"> 
<input type="submit" name="submit"> 
</form> 
</body> 
</html> 


Het doel is de input te veranderen in camel-style.
Voorbeeld input:

"PHPFreakz heeft een community"

output:

"PhPfReAkZ hEeFt EeN cOmMuNiTy"

De output moet beginnen met een hoofdletter. Iedere tweede letter is een
een hoofdletter. Spaties tellen dus niet mee als karakters (zie voorbeeld hierboven).

Nu mag jij camel.php programmeren en liefst zo kort mogelijk.


--[ Deadline:

De deadline is over 6 dagen.
Donderdag 19:00 6 oktober 2005

-----

Post in dit topic vragen/suggesties.
GEEN OPLOSSINGEN!

Mocht je een oplossing hebben, dan mag je gerust je karakter aantal posten.
Dit om andere te stimuleren

Diegene die het minste karakters heeft gebruikt, wint!

Veel succes,

Tri Pham
De kortste geldige oplossing staat op dit moment op 66 karakters. Standaard instellingen, dus Notices staan uit, super globals staan uit.

Loopen gaat niet werken omdat je dan al boven de 20 karakters kwijt ben voor het loopen door je string. Dan hou je dus nog max 46 karakters over voor het overslaan van spaties en het omzetten naar uppper dan wel lowercase.

Houden we een reguliere expressie over. Daar ga ik nu mee beginnen, na twee dagen met loopen aan het prutsen te zijn geweest. Input is welkom.
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 12:12:28 #49
1972 Swetsenegger
Egocentrische Narcist
pi_31109441
Ik vond al wat interessants:
Remember, the only difference in ASCII between an uppercase letter and a lowercase letter is a single bit that is 0 for uppercase and 1 for lowercase. Surely it would be possible to write some code that would simply flip this bit in each character to the value you want:
- AND with 0 to force uppercase
- OR with 1 to force lowercase
- XOR with 1 to invert the case
- randomly set it to 1 or 0 to set random case.

deze vond ik erbij, welke uppercase en lowercase omdraait

1
2
3
<?php
preg_replace
('/[a-z]+/ie', '\'$0\' ^ str_pad(\'\', strlen(\'$0\'), \' \')', $input);
?>


Maar dat moet dus een preg_replace welke AND 0 bij karakter 1, OR 1 bij karakter 2, zo tot het eind van de string. spaties negeren worden

[ Bericht 25% gewijzigd door Swetsenegger op 02-10-2005 12:33:11 ]
pi_31110892
quote:
Op zaterdag 1 oktober 2005 17:31 schreef Swetsenegger het volgende:
Voor de echte nerds
http://www.phpfreakz.nl/forum.php?forum=5&page=1
Als je hier nou meteen naar het juiste topic had gelinkt, dan had ik 'm meteen gesnapt.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 13:09:59 #51
1972 Swetsenegger
Egocentrische Narcist
pi_31111246
quote:
Op zondag 2 oktober 2005 13:00 schreef SuperRembo het volgende:

[..]

Als je hier nou meteen naar het juiste topic had gelinkt, dan had ik 'm meteen gesnapt.
Altijd userinput checken

Anyway, ik ga even een aantal uurtjes quality time met mijn dochter besteden. Vanavond weer over nadenken.

[ Bericht 11% gewijzigd door Swetsenegger op 02-10-2005 13:16:17 ]
pi_31111602
Ik zit nu op 91 77 68 tekens met een preg_replace, 103102 tekens met een loop.

Nog een flinke weg te gaan naar de 66 (of minder tekens)
Ik kom in de buurt van de 66

[ Bericht 47% gewijzigd door SuperRembo op 02-10-2005 15:36:48 ]
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 15:31:08 #53
1972 Swetsenegger
Egocentrische Narcist
pi_31116057
quote:
Op zondag 2 oktober 2005 13:18 schreef SuperRembo het volgende:
Ik zit nu op 9177 tekens met een preg_replace, 103102 tekens met een loop.

Nog een flinke weg te gaan naar de 66 (of minder tekens)
Vanavond weer eens kijken, maar 66 tekens is echt bizar weinig.
niet vergeten dat je de laatste ?> mag weglaten he
pi_31116257
quote:
Op zondag 2 oktober 2005 15:31 schreef Swetsenegger het volgende:

[..]

Vanavond weer eens kijken, maar 66 tekens is echt bizar weinig.
niet vergeten dat je de laatste ?> mag weglaten he
Dan moet er wel weer een ; achter. Dan zit ik nu op 67.
63!

Zal dan maar ff reggen op dat forum
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 15:42:32 #55
1972 Swetsenegger
Egocentrische Narcist
pi_31116376
quote:
Op zondag 2 oktober 2005 15:38 schreef SuperRembo het volgende:

[..]

Dan moet er wel weer een ; achter. Dan zit ik nu op 67.
63!

Zal dan maar ff reggen op dat forum
Dat zal ik maar doen.
trouwens, je kan 'm mailen naar phpgolf [at] gmail.com
pi_31116414
Ik krijg wel 2 + (aantal niet-spaties) notices
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31116434
63
Ik had al wel het vermoeden dat jij in de buurt zou komen van die 66, maar na een middagje die 66 al gepasseerd!
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 15:46:05 #58
1972 Swetsenegger
Egocentrische Narcist
pi_31116463
quote:
Op zondag 2 oktober 2005 15:43 schreef SuperRembo het volgende:
Ik krijg wel 2 + (aantal niet-spaties) notices
notices staan standaard uit, en is dus geldig
De huidige nummer 1 heeft 66 met een notice. Als hij 68 karakters gebruikt heeft hij geen notices, maar de 66 karakter optie is gewoon geldig

Ben wel heeeeeeeeeeeeeeeeel benieuwd hoe je het gedaan hebt

volgens mij moet ik hier toch 'om de andere' mee kunnen krijgen
quote:
Replacement may contain references of the form \\n or (since PHP 4.0.4) $n, with the latter form being the preferred one. Every such reference will be replaced by the text captured by the n'th parenthesized pattern. n can be from 0 to 99, and \\0 or $0 refers to the text matched by the whole pattern. Opening parentheses are counted from left to right (starting from 1) to obtain the number of the capturing subpattern.
Maar dat lukt me niet, en deze:
quote:
The precise effect of "\cx" is as follows: if "x" is a lower case letter, it is converted to upper case. Then bit 6 of the character (hex 40) is inverted. Thus "\cz" becomes hex 1A, but "\c{" becomes hex 3B, while "\c;" becomes hex 7B.
Zal toch ook enig lucht moeten geven in het aantal gebruikte karakters.

Maar die krijg ik OOK al niet aan de praat

[ Bericht 41% gewijzigd door Swetsenegger op 02-10-2005 15:56:37 ]
pi_31118993
Ik schaam me diep, 193 tekens
Aangezien het geen enkele competitie is zal ik em posten:
1
2
3
$a=$_POST['string'];for($b=0;$b<strlen($a);$b++){$c=ord(substr($a,$b,1));
if($c!=32){$e++;$g=($e%2!=0)?(($c<91)?chr($c):chr($c-32)):(($c<91)?chr($c+32):
chr($c));$f.=$g;}else{$f.=" ";}}echo $f;


(minus enters dus)
Ik zal me beter moeten verdiepen in preg_replaces, anders wordt het echt niks

-edit- 154
1
2
3
$a=$_POST['string'];for($b=0;$b<strlen($a);$b++){$c=substr($a,$b,1);
if($c!=" "){$d.=($e%2==0)?strtoupper($c):strtolower($c);$e++;}else $d.=" ";}
echo $d;


[ Bericht 26% gewijzigd door Nevermind op 02-10-2005 17:44:19 ]
pi_31119765
In plaats van $c=substr($a,$b,1) zou je $c=$a{$b} kunnen gebruiken.
En in plaats van if else kan je ook de ? : operator gebruiken.

Met een (for)loop heb ik 'm in 93 tekens.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31120380
Dankje, de accollades had ik ook net bedacht, en daarmee kom ik op 133. Nu verder met ? :
Erg leuk om te doen trouwens, ook al ben ik er niet erg goed in
-edit- 124 122 117

[ Bericht 3% gewijzigd door Nevermind op 02-10-2005 18:32:03 ]
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 18:18:18 #62
1972 Swetsenegger
Egocentrische Narcist
pi_31120485
quote:
Op zondag 2 oktober 2005 18:14 schreef Nevermind het volgende:
Dankje, de accollades had ik ook net bedacht, en daarmee kom ik op 133. Nu verder met ? :
Erg leuk om te doen trouwens, ook al ben ik er niet erg goed in
-edit- 124
Ik ben er ook niet goed in, maar je leert er wel een hoop handiheidjes mee
De verkorte if notatie bijvoorbeeld
quote:
Op zondag 2 oktober 2005 17:54 schreef SuperRembo het volgende:
In plaats van $c=substr($a,$b,1) zou je $c=$a{$b} kunnen gebruiken.

Die ken/kon ik niet.
pi_31120519
quote:
Op zondag 2 oktober 2005 18:18 schreef Swetsenegger het volgende:

[..]

Ik ben er ook niet goed in, maar je leert er wel een hoop handiheidjes mee
De verkorte if notatie bijvoorbeeld
Inderdaad, bedankt voor de tip trouwens
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 18:29:18 #64
1972 Swetsenegger
Egocentrische Narcist
pi_31120782
Nevermind, je kan ook een foreach loop gebruiken en alleen de $b++.
Als je namelijk de eerste keer begint is $b dan NULL en dan begint hij gewoon bij 0, de volgende ronde is hij 1. Dat levert wel een notice op, maar dat is niet fout

alleen maakt dat weinig uit met betrekking tot karakters
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 19:12:04 #65
1972 Swetsenegger
Egocentrische Narcist
pi_31121947
$c=chr($c & 0)

waarom geeft dit altijd een spatie terug?
pi_31122170
Dat hangt maar net van de waarde van $c af
pi_31122265
Ik kwam er achter dat je in for-loops ook direct resultaat kan teruggeven, weer wat geleerd. Daarmee kom ik op
1
2
$a=$_POST[string];for($c=0;$c<strlen($a);print($a{$c}!=" "
?$c%2==0?strtoupper($a{$c}):strtolower($a{$c}):" "),$c++);


Nog steeds veel te veel, maar het is weer een paar tekens minder

Maar als ik het goed begrijp kun je alleen het print-commando gebruiken? Zelfs echo werkt niet.
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 19:27:18 #68
1972 Swetsenegger
Egocentrische Narcist
pi_31122471
quote:
Op zondag 2 oktober 2005 19:18 schreef JeRa het volgende:
Dat hangt maar net van de waarde van $c af
Ongeacht de waarde van $c geeft hij dus altijd 0 terug (en met chr() dus een spatie)
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 19:28:01 #69
1972 Swetsenegger
Egocentrische Narcist
pi_31122501
quote:
Op zondag 2 oktober 2005 19:20 schreef Nevermind het volgende:
Ik kwam er achter dat je in for-loops ook direct resultaat kan teruggeven, weer wat geleerd. Daarmee kom ik op
[ code verwijderd ]

Nog steeds veel te veel, maar het is weer een paar tekens minder

Maar als ik het goed begrijp kun je alleen het print-commando gebruiken? Zelfs echo werkt niet.
klopt, met print kan je het resultaat van een functie printen, met echo niet
en je kan die strtolower en strtoupper nog vervangen door een bitwise operatie. Hoewel dat bij tot op heden nog niet lukt
pi_31122519
quote:
Op zondag 2 oktober 2005 19:27 schreef Swetsenegger het volgende:

[..]

Ongeacht de waarde van $c geeft hij dus altijd 0 terug (en met chr() dus een spatie)
Maar je doet '& 0', dus ik mag aannemen dat $c een integer is? Of is het een character?
pi_31122580
quote:
Op zondag 2 oktober 2005 19:20 schreef Nevermind het volgende:
Ik kwam er achter dat je in for-loops ook direct resultaat kan teruggeven, weer wat geleerd. Daarmee kom ik op
[ code verwijderd ]

Nog steeds veel te veel, maar het is weer een paar tekens minder

Maar als ik het goed begrijp kun je alleen het print-commando gebruiken? Zelfs echo werkt niet.
Ik wil niet vervelden doen, maar klopt je output wel? Je moet wel rekening houden met de spaties.


1
2
3
input  = "PHPFreakz heeft een community"
output = "PhPfReAkZ hEeFt EeN cOmMuNiTy" // Goed
output = "PhPfReAkZ HeEfT EeN CoMmUnItY" // Fout
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31122611
quote:
Op zondag 2 oktober 2005 19:27 schreef Swetsenegger het volgende:

[..]

Ongeacht de waarde van $c geeft hij dus altijd 0 terug (en met chr() dus een spatie)
$c & 0 is altijd 0, net als $c and false altijd false is.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31122625
Ai, je hebt gelijk SuperRembo. Ik ga er later weer over verder denken
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 19:33:23 #74
1972 Swetsenegger
Egocentrische Narcist
pi_31122640
quote:
Op zondag 2 oktober 2005 19:32 schreef SuperRembo het volgende:

[..]

$c & 0 is altijd 0, net als $c and false altijd false is.
hoe moet ik dan AND'ten met 0

-edit- ik geef het op ook. Mijn laatste werkende code was iets van 139 karakters. Ik ga NOOIT onder die 63 komen
pi_31122655
quote:
Op zondag 2 oktober 2005 19:28 schreef Swetsenegger het volgende:

[..]

klopt, met print kan je het resultaat van een functie printen, met echo niet
en je kan die strtolower en strtoupper nog vervangen door een bitwise operatie. Hoewel dat bij tot op heden nog niet lukt
Die bitwise operaties werken ook met tekens, maar dan moet je wel aan beide kanten een character gebruiken. Dat het verschil tussen hoofdletter en kleine letter altijd een spatie is, dat veronderstel ik bekend

Overigens ben ik nog niet verder gekomen dan 69 (zonder php sluit tag), of 108 met een loopje
pi_31122660
-edit-
pi_31122684
quote:
Op zondag 2 oktober 2005 19:33 schreef Swetsenegger het volgende:

[..]

hoe moet ik dan AND'ten met 0
Er zit verschil tussen 'a' & 0 en 'a' & '0'.
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 19:37:18 #78
1972 Swetsenegger
Egocentrische Narcist
pi_31122758
quote:
Op zondag 2 oktober 2005 19:35 schreef Light het volgende:

[..]

Er zit verschil tussen 'a' & 0 en 'a' & '0'.
Ja ik vat 'm nu, moet dus $c=$c&' ' zijn.
-edit- nee dus
pi_31122903
1
2
3
<?php
$a
=strtolower($_POST[string]);$a=preg_replace('/\w\s?\w?/e','ucfirst("$0")',$a);
?>

Verder dan dat kom ik op het moment niet. 84 tekens inclusief <? en ?>
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 19:46:51 #80
1972 Swetsenegger
Egocentrische Narcist
pi_31123092
quote:
Op zondag 2 oktober 2005 19:41 schreef JeRa het volgende:

[ code verwijderd ]

Verder dan dat kom ik op het moment niet. 84 tekens inclusief <? en ?>
Hij doet het niet.
pi_31123101
quote:
Op zondag 2 oktober 2005 19:46 schreef Swetsenegger het volgende:

[..]

Hij doet het niet.
Wat doet hij niet? Hier draait ie prima?

edit: met output, zie hieronder.
pi_31123177
1
2
3
<?php
$a
=strtolower($_POST[string]);echo preg_replace('/\w\s?\w?/e','ucfirst("$0")',$a);
?>

86 tekens.
pi_31123275
quote:
Op zondag 2 oktober 2005 19:49 schreef JeRa het volgende:

[ code verwijderd ]

86 tekens.
Maak er dan
1<?=preg_replace('/\w\s?\w?/e','ucfirst("$0")',strtolower($_POST[string]));

van, heb je 74
pi_31123356
quote:
Op zondag 2 oktober 2005 19:51 schreef Nevermind het volgende:

[..]

Maak er dan
[ code verwijderd ]

van, heb je 74
In mijn afgunst van die constructie was ik 'm gewoon helemaal vergeten nou, nog maar 12 tekens
pi_31123425
Kun je niet iets toevoegen aan de pattern zodat ie case insensitive wordt en je het "strtolower"-stukje weg kan laten?
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 19:57:04 #86
1972 Swetsenegger
Egocentrische Narcist
pi_31123446
ucfirst maakt van het eerste karakter van een string een hoofdletter.
Ik begrijp je regexp niet
pi_31123463
quote:
Op zondag 2 oktober 2005 19:56 schreef Nevermind het volgende:
Kun je niet iets toevoegen aan de pattern zodat ie case insensitive wordt en je het "strtolower"-stukje weg kan laten?
Case insensitive maken is makkelijk (i-modifier), maar de bron lowercase maken is een ander verhaal nog niets gevonden tot nu toe.
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 19:58:08 #88
1972 Swetsenegger
Egocentrische Narcist
pi_31123487
quote:
Op zondag 2 oktober 2005 19:56 schreef Nevermind het volgende:
Kun je niet iets toevoegen aan de pattern zodat ie case insensitive wordt en je het "strtolower"-stukje weg kan laten?
case insensitive preg_replace is geen probleem (ipv /e wordt het /ie), maar... wat doe je dan als de input een hoofdletter is en het een kleine letter moet worden?
pi_31123531
quote:
Op zondag 2 oktober 2005 19:57 schreef Swetsenegger het volgende:
ucfirst maakt van het eerste karakter van een string een hoofdletter.
Ik begrijp je regexp niet
1\w\s?\w?

Woord-karakter, eventuele whitespace, eventueel woord-karakter.

Deze string matched ie telkens (2 bij 2, bij een spatie 3, bij het laatste teken eventueel 1) en dan maakt ie van het eerste teken een uppercase

Dus:

blaat blaat blaat
pi_31123548
Ik kom niet kleiner dan 67 tekens
pi_31123612
quote:
Op zondag 2 oktober 2005 19:58 schreef Swetsenegger het volgende:

[..]

case insensitive preg_replace is geen probleem (ipv /e wordt het /ie), maar... wat doe je dan als de input een hoofdletter is en het een kleine letter moet worden?
Je hebt gelijk, ik zat even mee te denken, maar ik heb veel te weinig ervaring met regexp om iets zinnigs toe te voegen
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 20:01:43 #92
1972 Swetsenegger
Egocentrische Narcist
pi_31123615
quote:
Op zondag 2 oktober 2005 19:59 schreef JeRa het volgende:

[..]
[ code verwijderd ]

Woord-karakter, eventuele whitespace, eventueel woord-karakter.

Deze string matched ie telkens (2 bij 2, bij een spatie 3, bij het laatste teken eventueel 1) en dan maakt ie van het eerste teken een uppercase

Dus:

blaat blaat blaat
Ach fuck, natuurlijk. ? is 0 of 1, dus je $0 wordt letter+letter of letter+spatie+letter, waarbij de eerste van $0 hoofdletter wordt Deze zocht ik al.
pi_31123666
quote:
Op zondag 2 oktober 2005 20:01 schreef Swetsenegger het volgende:

[..]

Ach fuck, natuurlijk. ? is 0 of 1, dus je $0 wordt letter+letter of letter+spatie+letter, waarbij de eerste van $0 hoofdletter wordt Deze zocht ik al.
Maar het is kennelijk niet dé oplossing
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 20:03:21 #94
1972 Swetsenegger
Egocentrische Narcist
pi_31123690
quote:
Op zondag 2 oktober 2005 19:59 schreef Light het volgende:
Ik kom niet kleiner dan 67 tekens
Post je code, misschien krijgen we er nog 5 vanaf om SuperRembo te verslaan
pi_31123758
quote:
Op zondag 2 oktober 2005 19:59 schreef Light het volgende:
Ik kom niet kleiner dan 67 tekens
Die wil ik ook wel zien
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31123797
1<?=preg_replace('/\w/e','++$u%2?$0&~" ":$0|" "',$_POST[string]);

Ik heb er nog 65 van weten te maken
pi_31123854
SuperRembo, klopt het dat jouw code op je site staat?
pi_31124031
quote:
Op zondag 2 oktober 2005 20:07 schreef JeRa het volgende:
SuperRembo, klopt het dat jouw code op je site staat?
Hmmm, ja. Heb 'm weer weggehaald. Had niet verwacht dat dat zo snel gevonden zou worden
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31124034
quote:
Op zondag 2 oktober 2005 20:06 schreef Light het volgende:

[ code verwijderd ]

Ik heb er nog 65 van weten te maken
Hele mooie oplossing, maar daar kunnen er nog 3 vanaf *niet zegt waar*
  FOK!-Schrikkelbaas zondag 2 oktober 2005 @ 20:21:34 #100
1972 Swetsenegger
Egocentrische Narcist
pi_31124263
quote:
Op zondag 2 oktober 2005 20:06 schreef Light het volgende:

[ code verwijderd ]

Ik heb er nog 65 van weten te maken

Met uitleg graag

1'++$u%2?$0&~" ":$0|" "'

++$u%2
Hier kijk je in ieder geval of iets even is. het 'iets' ontgaat me alleen.
Zoja, dan vervang je door $0&~" " dus het karakter ga je AND'en met tilde spatie
Zo nee, dan vervang je door $0|" " dus het karakter ga je orren met spatie.

[ Bericht 36% gewijzigd door Swetsenegger op 02-10-2005 20:27:08 ]
pi_31124351
quote:
Op zondag 2 oktober 2005 20:21 schreef Swetsenegger het volgende:

[..]


Met uitleg graag
Voor elke character wordt deze code ge-evalled:
1++$u % 2 ? $0 & ~" " : $0 | " "

Oftewel, bij de eerste character wordt het uppercase gemaakt ($0 & ~" ") en bij elk tweede character wordt het lowercase gemaakt ($0 | " "). Dit omdat $u 1, 2, 3, 4 is en dat met %2 1, 0, 1, 0 oplevert
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')