Kleine Vragen Topic #4

Gestart doorOne2xs1.965 reacties23.994 weergaven

1.966 berichten · pagina 123 van 132

Stef

Lid

Berichten
10.150
Reputatie
2
Punten
0,00
Lid sinds
Laatst gezien
Ik probeer in PHP met DateTime() een datum te maken, maar ik krijg de volgende error:

Fatal error: Uncaught exception Exception with message DateTime::__construct(): Failed to parse time string (01-19-1962) at position 0 (0): Unexpected character in C:xampphtdocsdbconvindex.php:55 Stack trace: #0 C:xampphtdocsdbconvindex.php(55): DateTime->__construct(01-19-1962) #1 {main} thrown in C:xampphtdocsdbconvindex.php on line 55


Maar waarom is dat een unexpected character? 01-19-1962 is toch gewoon een correcte datum?
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Stef schreef:
Ik probeer in PHP met DateTime() een datum te maken, maar ik krijg de volgende error:

Fatal error: Uncaught exception Exception with message DateTime::__construct(): Failed to parse time string (01-19-1962) at position 0 (0): Unexpected character in C:xampphtdocsdbconvindex.php:55 Stack trace: #0 C:xampphtdocsdbconvindex.php(55): DateTime->__construct(01-19-1962) #1 {main} thrown in C:xampphtdocsdbconvindex.php on line 55
Maar waarom is dat een unexpected character? 01-19-1962 is toch gewoon een correcte datum?

Ja en nee. Voor ons is het prima te lezen, maar PHP weet op deze manier niet wat het formaat is. Het kan dd-mm-yyyy zijn, maar ook mm-dd-yyyy.
Je kunt dan beter date_create_from_format (a.k.a DateTime::createFromFormat) gebruiken.
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Sevvlor schreef:
Eerdere citaten tonen
Jessee schreef:
Dus Nederlanders op vakantie of die in het buitenland wonen mogen niet op je website?
Wanneer leren mensen nou eens dat dingen beperken gewoon niet kan. Los dingen op een betere manier op, niet half en daarmee ook nog users beperken.

Stel eens een betere oplossing voor dan?
Captcha
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Bartv schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Jessee schreef:
Dus Nederlanders op vakantie of die in het buitenland wonen mogen niet op je website?
Wanneer leren mensen nou eens dat dingen beperken gewoon niet kan. Los dingen op een betere manier op, niet half en daarmee ook nog users beperken.

Het is inderdaad het beperken van registraties, en Tweakers doet dat overigens ook. Waarom zou een Nederlands iemand uit Polen zich opeens willen aanmelden op onze website? Laat ze dan gewoon een VPN gebruiken, en ik denk dat velen ge-emigreerden/lange vakantiegangers dat ook wel zullen doen.

Even wat anders: waarop ik vastloop.
Ik wil de reviews op mijn site gaan splitten in losse paginas. Daarbij wil ik de content splitten over meerdere pagina met behulp van een [page] tag:

[COLOR= #0000BB]<?php[/COLOR]
        [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR][URL="http://www.php.net/isset"]isset[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] ) || ![/COLOR][URL="http://www.php.net/is_numeric"]is_numeric[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] ) )
        {[/COLOR]
            [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];
        }[/COLOR]

        [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] <[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700]||[/COLOR] [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] >[/COLOR] [URL="http://www.php.net/count"]count[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$arrBericht[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/explode"]explode[/URL] [COLOR= #007700]([/COLOR] [COLOR= #DD0000][page][/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$strBericht[/COLOR] [COLOR= #007700]) ) )
        {[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Deze pagina bestaat niet. Ga terug."[/COLOR][COLOR= #007700];
        }[/COLOR]
        [URL="http://www.php.net/else"]else[/URL]
        [COLOR= #007700]{[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$arrBericht[/COLOR] [COLOR= #007700][([/COLOR] [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] -[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700])] ;
        }[/COLOR]
?>


En het overzicht:

[COLOR= #0000BB]<?php[/COLOR]
            [URL="http://www.php.net/for"]for[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$int[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$int[/COLOR] [COLOR= #007700]< ([/COLOR] [URL="http://www.php.net/count"]count[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$arrBericht[/COLOR] [COLOR= #007700]) +[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700]);[/COLOR] [COLOR= #0000BB]$int[/COLOR][COLOR= #007700]++ )
            {[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"<a href=/review/"[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$id[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]"&page="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$int[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]">"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$int[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" </a>"[/COLOR][COLOR= #007700];
            }[/COLOR]
              ?>


Maar nu zou ik graag titels plaatsen in de page-tag. Zoals [page="Geschiedenis"] waarbij in het overzicht ook daadwerkelijk Geschiedenis als titel is te zien. Hoe valt dit aan te pakken? Ben zelf geen koning in reg-exes, en loop even vast hoe ik dit kan implementeren.
Ik snap je precieze probleem niet. Wat wil je precies bereiken met de code?
Een artikel splitsen over meerdere paginas.
Enig idee? Zoiets als dit.... https://tweakers.net/reviews/331/tweakers-faq.html en dan de inhoudsopgave.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Aarclay schreef:
Eerdere citaten tonen
Bartv schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Jessee schreef:
Dus Nederlanders op vakantie of die in het buitenland wonen mogen niet op je website?
Wanneer leren mensen nou eens dat dingen beperken gewoon niet kan. Los dingen op een betere manier op, niet half en daarmee ook nog users beperken.

Het is inderdaad het beperken van registraties, en Tweakers doet dat overigens ook. Waarom zou een Nederlands iemand uit Polen zich opeens willen aanmelden op onze website? Laat ze dan gewoon een VPN gebruiken, en ik denk dat velen ge-emigreerden/lange vakantiegangers dat ook wel zullen doen.

Even wat anders: waarop ik vastloop.
Ik wil de reviews op mijn site gaan splitten in losse paginas. Daarbij wil ik de content splitten over meerdere pagina met behulp van een [page] tag:

[COLOR= #0000BB]<?php[/COLOR]
        [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR][URL="http://www.php.net/isset"]isset[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] ) || ![/COLOR][URL="http://www.php.net/is_numeric"]is_numeric[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] ) )
        {[/COLOR]
            [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];
        }[/COLOR]

        [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] <[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700]||[/COLOR] [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] >[/COLOR] [URL="http://www.php.net/count"]count[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$arrBericht[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/explode"]explode[/URL] [COLOR= #007700]([/COLOR] [COLOR= #DD0000][page][/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$strBericht[/COLOR] [COLOR= #007700]) ) )
        {[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Deze pagina bestaat niet. Ga terug."[/COLOR][COLOR= #007700];
        }[/COLOR]
        [URL="http://www.php.net/else"]else[/URL]
        [COLOR= #007700]{[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$arrBericht[/COLOR] [COLOR= #007700][([/COLOR] [COLOR= #0000BB]$_GET[/COLOR] [COLOR= #007700][[/COLOR][COLOR= #DD0000]page[/COLOR][COLOR= #007700]] -[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700])] ;
        }[/COLOR]
?>


En het overzicht:

[COLOR= #0000BB]<?php[/COLOR]
            [URL="http://www.php.net/for"]for[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$int[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$int[/COLOR] [COLOR= #007700]< ([/COLOR] [URL="http://www.php.net/count"]count[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$arrBericht[/COLOR] [COLOR= #007700]) +[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700]);[/COLOR] [COLOR= #0000BB]$int[/COLOR][COLOR= #007700]++ )
            {[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"<a href=/review/"[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$id[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]"&page="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$int[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]">"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$int[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" </a>"[/COLOR][COLOR= #007700];
            }[/COLOR]
              ?>


Maar nu zou ik graag titels plaatsen in de page-tag. Zoals [page="Geschiedenis"] waarbij in het overzicht ook daadwerkelijk Geschiedenis als titel is te zien. Hoe valt dit aan te pakken? Ben zelf geen koning in reg-exes, en loop even vast hoe ik dit kan implementeren.
Ik snap je precieze probleem niet. Wat wil je precies bereiken met de code?
Een artikel splitsen over meerdere paginas.
Enig idee? Zoiets als dit.... https://tweakers.net/reviews/331/tweakers-faq.html en dan de inhoudsopgave.
Waarschijnlijk is dat gewoon iets als

Article
- Id (311)
- Title (Tweakers faq)

Pages
- Id (xxxx)
- Article_id (311)
- Title (Algemeen)
- Article_order (1)
- Content (....)


En wat je dan kan doen in gewoon voor het artikel met het ID in de url (in dit geval 311) de pages ophalen. En dan loop je over elke page heen.

Voor de inhoudsopgave hoef je dan alleen zoiets te doen (pseudocode):

[COLOR= #0000BB]<?php
$pages[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"SELECT Title, Article_order FROM Pages WHERE Article_Id = 311 ORDER BY Article_order DESC"[/COLOR][COLOR= #007700];[/COLOR]

[URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$pages[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$page[/COLOR][COLOR= #007700]) {[/COLOR]
    [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<a href="/311/{$page->id}">{$page->title}</a>[/COLOR][COLOR= #007700];
}[/COLOR]


En om de content op te halen van bijvoorbeeld pagina 2 hoef je dan alleen zoiets te doen (wederom pseudocode):

[COLOR= #0000BB]<?php
$article[/COLOR] [COLOR= #007700]=[/COLOR]  [COLOR= #DD0000]"SELECT a.Title, p.Title as pageTitle, p.Content FROM Article a LEFT JOIN Pages p ON a.Id = p.Article_id WHERE a.Id = 311 AND p.Article_order = 2 ORDER BY Article_order DESC"[/COLOR][COLOR= #007700];[/COLOR]

[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<h1>{$article->Title}: {$article->pageTitle}</h1>[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<p>{$article->Content}</p>[/COLOR][COLOR= #007700];[/COLOR]


Maar hoe het precies in jouw code moet, is natuurlijk lastig te zeggen met alleen een stukje pagination-script.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Het kan inderdaad ook in een aparte tabel. Maar of dat nou praktisch is bij het editten, is de vraag. Ik denk dat je met een
[page=Bla die bla] tag meer controle over je inhoud kan hebben als je wat van de ene pagina naar de andere pagina heen en weer wilt schuiven.

En dat is waar ik eigenlijk toch meer naar kijk. In Wordpress heb je ook weer een [more] tag (dacht ik) om de boel af te breken.
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Aarclay schreef:
Het kan inderdaad ook in een aparte tabel. Maar of dat nou praktisch is bij het editten, is de vraag. Ik denk dat je met een
[page=Bla die bla] tag meer controle over je inhoud kan hebben als je wat van de ene pagina naar de andere pagina heen en weer wilt schuiven.

En dat is waar ik eigenlijk toch meer naar kijk. In Wordpress heb je ook weer een [more] tag (dacht ik) om de boel af te breken.
Dan moet je gewoon met een regex werken, lijkt me het meest praktisch inderdaad met editten.

Hoe die regex er uit moet zien weet ik niet, ik ben daar echt incapabel mee. Je kunt het wel met explode() oplossen, ik gebruik eigenlijk altijd explode en enkel regexen als het echt niet anders kan. biggrin
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Dat is ook de best emanier. Overal een reg-ex voor zou ook behoorlijk zwaar zijn wink.
Nu heb ik alleen nog een duwtje in de rug nodig hoe je bijv.

[page="Geschiedenis"]
[page="Fotos"]
[page="Reactie van anderen"]


kan omzetten in een array die die drie titels toont, en linkt naar paginas: /1 /2 /3.
Het huidige van mijn (behoorlijk oude) code toont alleen de paginanummers, en dat is ook weer zo nietszeggend yummie
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
De regex is op zich volgens mij niet lastig:
[page="(.*)"]
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
En hoe krijgen we die dan in een array gegoten?
preg_match _all of iets in die buurt?
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Aarclay schreef:
En hoe krijgen we die dan in een array gegoten?
preg_match _all of iets in die buurt?
Dat is trouwens puur en alleen om de titels te matchen uit een string. Als je ook daadwerkelijk de text apart wil hebben raad ik je aan om inderdaad gewoon met explode te werken. en dan te exploden op iets als [page="
0
Berichten
951
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rik schreef:
Eerdere citaten tonen
Aarclay schreef:
En hoe krijgen we die dan in een array gegoten?
preg_match _all of iets in die buurt?

Dat is trouwens puur en alleen om de titels te matchen uit een string. Als je ook daadwerkelijk de test apart wil hebben raad ik je aan om inderdaad gewoon met explode te werken. en dan te exploden op iets als [page="
Dit zou puur en alleen werken als hij dus geen extra ruimte en/of extra tekst tussen de tags zou hebben lijkt me?
anders krijg je:
[page=" exploden en dan krijg je bijvoorbeeld:
Geschiedenis"] bla bla bla bla bla bla bla bla bla
bla bla bla bla bla

dan zou je weer moeten exploden op "]

Lijkt me ook niet echt handig.
Als ze allemaal netjes onder mekaar staan altijd dan kan het natuurlijk wel met explode.
Anders raad ik je toch aan om regex te gebruiken
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
[COLOR= #0000BB]<?php

$text[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/file_get_contents"]file_get_contents[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]text.txt[/COLOR][COLOR= #007700]);[/COLOR]

[COLOR= #0000BB]$splittedArr[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/preg_split"]preg_split[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]/[page="(.*?)"]/[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$text[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] PREG_SPLIT_DELIM_CAPTURE[COLOR= #007700]);[/COLOR]

[URL="http://www.php.net/var_dump"]var_dump[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$splittedArr[/COLOR][COLOR= #007700]);[/COLOR]


text.txt:

Bla bla intro bla bla

[page="Geschiedenis"]

oh my gawdd geschiedenis omg

[page="Fotos"]

wassup nice piccas

[page="Reactie van anderen"]

omg vet cowl man!!!11!1!!one


Geeft het volgende terug:

array(7) {
  [0]=>
  string(25) "Bla bla intro bla bla

"
  [1]=>
  string(12) "Geschiedenis"
  [2]=>
  string(36) "

oh my gawdd geschiedenis omg

"
  [3]=>
  string(6) "Fotos"
  [4]=>
  string(27) "

wassup nice piccas

"
  [5]=>
  string(19) "Reactie van anderen"
  [6]=>
  string(32) "

omg vet cowl man!!!11!1!!one"
}


.

Hier zal je dus best wel een navigatiesysteempje omheen kunnen schrijven.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Oh verrek. Wist niet eens dat preg_split bestond. En ik maar zitten kloten net om een regexje te schrijven dat ook de text voor / na [page] tags matched emo
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
True... true...
Dat exploden is alleen nodig om de hoofdstukken per pagina te tonen. Daar ben ik mij van bewust, en die regex is natuurlijk om de titel op te halen uit de tags, als je ee algemeen overzicht wilt plaatsen als inhoudsopgave.

Ik ga er eens mee experimenteren. smileEn preg_split was mij ook trouwens ontgaan. yummie
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren