Zou wel grappig zijn ja, alleen ik heb niet de behoefte om zo iets te hosten.quote:Op maandag 17 maart 2014 15:38 schreef Tijn het volgende:
Het leukste is als we zoiets doen in combinatie met een repository die automatisch de inhoud van de posts commit en pusht.
Had inderdaad een stuk netter gekund.quote:Op maandag 17 maart 2014 21:44 schreef Scorpie het volgende:
[..]
Het is JavaScript dat geinsert wordt? Lekker veilig.
quote:
Het lijkt op javascript dat uitgevoerd wordt. En ik zie het veiligheidsaspect niet zo. Het is vooral een kwestie van data escapen en filteren waar nodig, maar dat moet je sowieso doen.quote:Op maandag 17 maart 2014 21:44 schreef Scorpie het volgende:
[..]
Het is JavaScript dat geinsert wordt? Lekker veilig.
Eigenlijk moet je zoiets binnen een sandbox kunnen draaien. Ik offer mijn server er in ieder geval niet voor opquote:Op maandag 17 maart 2014 19:03 schreef TwenteFC het volgende:
[..]
En dan de hamvraag, wie heeft ballen genoeg om zijn webserver op te offeren.
Of wordt de code niet écht uitgevoerd?
Dat escapen en filteren is gewoonweg onnodig imo. Als je data ophaalt krijg je JSON of XML terug, netjes, clean, simpel. En daarmee bouw je je DOM op. Je gaat niet lopen kutten met HTML fragmenten injecteren en dat soort ongein. Is gewoon niet professioneel.quote:Op maandag 17 maart 2014 21:53 schreef Light het volgende:
[..]
Het lijkt op javascript dat uitgevoerd wordt. En ik zie het veiligheidsaspect niet zo. Het is vooral een kwestie van data escapen en filteren waar nodig, maar dat moet je sowieso doen.
Vind het wel knap dat ze überhaupt op dit idee zijn gekomen, eerlijk is eerlijk, ik zou er niet aan gedacht hebben.quote:Op maandag 17 maart 2014 22:54 schreef Scorpie het volgende:
[..]
Dat escapen en filteren is gewoonweg onnodig imo. Als je data ophaalt krijg je JSON of XML terug, netjes, clean, simpel. En daarmee bouw je je DOM op. Je gaat niet lopen kutten met HTML fragmenten injecteren en dat soort ongein. Is gewoon niet professioneel.
Filteren doe je op de input, eens. Ik neem aan dat dat hier ook gebeurt. En escapen moet je sowieso doen, of je nou javascript, json, xml of nog iets anders teruggeeft. Dat je in php de functie json_encode() hebt die het escapen voor je regelt, doet niets af aan het feit dat het wel gedaan moet worden. Welke argumenten er gebruikt zijn bij het maken van de keuze voor javascript, weet ik niet.quote:Op maandag 17 maart 2014 22:54 schreef Scorpie het volgende:
[..]
Dat escapen en filteren is gewoonweg onnodig imo. Als je data ophaalt krijg je JSON of XML terug, netjes, clean, simpel. En daarmee bouw je je DOM op. Je gaat niet lopen kutten met HTML fragmenten injecteren en dat soort ongein. Is gewoon niet professioneel.
Ik kan me voorstellen dat er soms voor wordt gekozen om maar gewoon HTML terug te geven, zeker als het om erg gestructureerde data gaat. Als je geen HTML fragmenten teruggeeft moet je alles via JS gaan opbouwen. Nogal lastig als je ergens in de template aanpassingen doet en die vervolgens ook door moet voeren in het stuk JS wat het renderen van de posts afhandelt.quote:Op maandag 17 maart 2014 22:54 schreef Scorpie het volgende:
[..]
Dat escapen en filteren is gewoonweg onnodig imo. Als je data ophaalt krijg je JSON of XML terug, netjes, clean, simpel. En daarmee bouw je je DOM op. Je gaat niet lopen kutten met HTML fragmenten injecteren en dat soort ongein. Is gewoon niet professioneel.
Welnee, daar hebben we juist template engines voor bedacht. http://garann.github.io/template-chooser/quote:Op maandag 17 maart 2014 23:51 schreef bondage het volgende:
[..]
Ik kan me voorstellen dat er soms voor wordt gekozen om maar gewoon HTML terug te geven, zeker als het om erg gestructureerde data gaat. Als je geen HTML fragmenten teruggeeft moet je alles via JS gaan opbouwen. Nogal lastig als je ergens in de template aanpassingen doet en die vervolgens ook door moet voeren in het stuk JS wat het renderen van de posts afhandelt.
Ik ben vooral verbaasd over het feit dat er hele lappen (duplicate) HTML over de lijn gaan.quote:Op maandag 17 maart 2014 23:42 schreef Light het volgende:
[..]
Filteren doe je op de input, eens. Ik neem aan dat dat hier ook gebeurt. En escapen moet je sowieso doen, of je nou javascript, json, xml of nog iets anders teruggeeft. Dat je in php de functie json_encode() hebt die het escapen voor je regelt, doet niets af aan het feit dat het wel gedaan moet worden. Welke argumenten er gebruikt zijn bij het maken van de keuze voor javascript, weet ik niet.
De templates hou ik al redelijk gescheiden van de rest dmv views. Ik heb even een paar van die template engine scriptjes bekeken en het ziet er wel erg aantrekkelijk uit. Ik ga me er sowieso meer in verdiepen, al gaat het wel lang duren voordat ik de templates van al mijn huidige projecten om heb gezet naar pure js.quote:Op dinsdag 18 maart 2014 00:00 schreef Scorpie het volgende:
[..]
Welnee, daar hebben we juist template engines voor bedacht. http://garann.github.io/template-chooser/
Zo hou je de templates netjes gescheiden van je data, kan je aanpassingen makkelijk doorvoeren (nieuw templatetje maken en die matchen op je data) en je onderhoud gaat nog eens flink omlaag.
Vroeger, toen de hele template nog in JS gebouwd werdquote:Op maandag 17 maart 2014 23:51 schreef bondage het volgende:
[..]
Ik kan me voorstellen dat er soms voor wordt gekozen om maar gewoon HTML terug te geven, zeker als het om erg gestructureerde data gaat. Als je geen HTML fragmenten teruggeeft moet je alles via JS gaan opbouwen. Nogal lastig als je ergens in de template aanpassingen doet en die vervolgens ook door moet voeren in het stuk JS wat het renderen van de posts afhandelt.
Ik heb wel een webservert beschikbaar.quote:Op maandag 17 maart 2014 19:03 schreef TwenteFC het volgende:
[..]
En dan de hamvraag, wie heeft ballen genoeg om zijn webserver op te offeren.
Of wordt de code niet écht uitgevoerd?
De FOK!silver layout deed dat toch? Die template was ook redelijk makkelijk in stukjes te hakken en heb ik lange tijd gebruikt om de dagcijfers mee te indexeren. Tegenwoordig gebruik ik daar de textonly layout voor aangezien die zo weinig mogelijk 'zooi' bevat wat ik niet nodig heb.quote:Op dinsdag 18 maart 2014 00:44 schreef KomtTijd... het volgende:
[..]
Vroeger, toen de hele template nog in JS gebouwd werd
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 37 38 39 40 41 42 43 44 45 46 47 | <?php include('../simplehtmldom/simple_html_dom.php'); class ScanTopic { public $fokTopicChain = "http://forum.fok.nl/topicchain/61"; public $topicPosts = "/1/300"; private $fokBaseUrl = "http://forum.fok.nl/"; protected $fokLatestTopicDom; public function __construct(){ $this->fokLatestTopicDom = $this->getLatestTopicDom($this->getPageDom($this->fokTopicChain)->find('.tTitel > a',0)->href); } public function scanPosts(){ return $this->fokLatestTopicDom->find('.codeDisplayTableCode'); } private function getLatestTopicDom($topicUrl){ return $this->getPageDom($this->fokBaseUrl.$topicUrl.$this->topicPosts); } private function getPageDom($page){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $page); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $html = curl_exec($ch); curl_close($ch); return str_get_html($html); } } $topic = new ScanTopic; foreach($topic->scanPosts() AS $scannedPost){ $postText = $scannedPost->plaintext; if(strpos($postText, 'submit-tag')){ echo $postText; } } ?> |
Kan je ook op find('.classname') selecteren, ipv find('tag[attr=blabla]')?quote:Op dinsdag 18 maart 2014 19:57 schreef TwenteFC het volgende:
[ code verwijderd ]
Super netjes is het niet, maar ik vind het te traaaaaag.
Je kan zoeken op .classname ja.quote:Op dinsdag 18 maart 2014 20:20 schreef Crutch het volgende:
[..]
Kan je ook op find('.classname') selecteren, ipv find('tag[attr=blabla]')?
Kan ook, alleen ben ik niet zo bekend met scrapen van sites daarin.quote:
Je zou kunnen kijken Symfony 2 of Laravel 4 hoe zij het aangepakt hebben?quote:Op dinsdag 18 maart 2014 20:52 schreef robin007bond het volgende:
Overigens vind ik het implementeren van de autoloader best lastig. Ook met die gist van Github weet ik totaal niet hoe ik het in moet richten. Een klasse met statische methodes die ik dan moet laten registreren via spl_autoload_register. Het is een beetje een warboel.
Ze zeggen dat ik dat dan maar in één klasse hoef te doen, maar die spl_autoload moet toch wel in iedere klasse zitten? Ik kan weinig echt concrete toepassingen vinden. En dan wil ik ook nog PSR-4 compliant werken, maar ik heb helemaal geen namespaces dus dan moet ik alles weer opnieuw inrichten.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |