Een van de weinige bedrijven waar nog het een en ander met Perl gedaan wordt, denk ik.quote:Op woensdag 8 oktober 2014 17:04 schreef slacker_nl het volgende:
[..]
Klopt. Op mijn werk is het Perl en JS (angular) wat de klok slaat.
Valt mee. Krijg geregeld aanbiedingen van head hunters/recruiters.quote:Op vrijdag 10 oktober 2014 23:11 schreef Light het volgende:
[..]
Een van de weinige bedrijven waar nog het een en ander met Perl gedaan wordt, denk ik.
1 2 3 | <?php date_format(new DateTime($test->datum), 'd F Y'); ?> |
quote:Op zaterdag 11 oktober 2014 07:32 schreef xaban06 het volgende:
[ code verwijderd ]
Wordt weergegeven als: 27 January 2014
Dit wil ik vertalen naar het Nederlands, dus: 27 januari 2014
Volgens mij moet dit met setlocale(LC_TIME, "nl_NL"); + strftime();
Ik kom er echter niet uit om strftime(); te gebruiken zonder een extra regel hoeven te gebruiken. Of ontkom ik daar niet aan?
1 2 3 4 5 6 7 8 9 10 | date_default_timezone_set("Europe/Amsterdam"); # Ik zet alles om naar NL, jij alleen je tijd. Pick any. setlocale(LC_ALL, array( 'nl_NL.utf8', 'nl_NL@euro', 'nl_NL.iso885915@euro', 'nl_NL.iso88591', 'nl_NL', 'POSIX', )); |
1 2 | setlocale(LC_TIME, "de_DE"); //only necessary if the locale isn't already set $formatted_time = strftime("%a %e.%l.%Y", $mytime->getTimestamp()) |
Volgens mij ben ik onduidelijk geweest met mijn vraagquote:
1 2 3 | <?php date_format(new DateTime($test->datum), 'd F Y'); ?> |
Dat zou ik die strtotime weglaten en gelijk $test->datum->getTimestamp doen.quote:
1 2 3 4 5 6 7 8 9 10 11 | <?php function showPage($page) { $inc = "inc/"; include $inc .'header-html.php'; include $inc ."$page"; include $inc .'footer-html.php'; } ?> |
1 2 3 4 5 6 7 8 9 | <?php ob_start(); include 'blog.php'; // Zet ook de meta/title objecten $content = ob_get_clean(); include 'header-html.php'; echo $content; include 'footer-html.php'; ?> |
Als ik het goed begrijp alles wat tussen ob_start(); en ob_get_clean(); staat wordt niet verzonden, maar vastgehouden in een buffer? Tot dat je het zelf echo'd? Maar je kan de data die worden genereerd in je buffer wel gewoon gebruiken zonder te verzenden?quote:Op zondag 12 oktober 2014 13:54 schreef papernote het volgende:
Zie http://php.net/manual/en/function.include.php en http://php.net/manual/en/language.variables.scope.php
Als je include aanroept, dan heb je in het geïncludeerde bestand de beschikking over de variablen die binnen scope vallen op de regel van de include. Dus in jouw geval: alle variabelen die binnen de functie showPage beschikbaar zijn. Daar vallen variabelen uit blog.php/contact.php waarschijnlijk niet onder.
Overigens kun je jouw probleem wellicht beter oplossen middels output buffering. Voorbeeld:
[ code verwijderd ]
Geen ervaring mee. Ik doe het in mijn vrije tijd en helaas te weinig tijd om het allemaal te leren.quote:Op zondag 12 oktober 2014 14:24 schreef slacker_nl het volgende:
Maar om dit soort problemen te voorkomen hebben we toch templating engines?
Juist als je er weinig tijd in wil steken zou ik gebruik maken van bestaande systemen dan zelf iets in elkaar te gaan rommelen.quote:Op zondag 12 oktober 2014 14:30 schreef xaban06 het volgende:
[..]
Geen ervaring mee. Ik doe het in mijn vrije tijd en helaas te weinig tijd om het allemaal te leren.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php foreach($xml->messagebody->order->mobilenumbers as $nummer) { foreach ( $nummer->number as $value ) { echo "Nummer: " . $value . "<br /><br />"; } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?xml version="1.0" encoding="UTF-8"?> <mobile_orderdetail_ack xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <messageheader> <messagetype>mobile_orderdetail_ack</messagetype> <messageversion>01</messageversion> <timestamp>2014-10-13T15:28:04+02:00</timestamp> <reference>abchenkdetank</reference> <requestid>12345-REQUEST-ID</requestid> </messageheader> <messagebody> <order> <general> <customer>Klantnaam</customer> <orderdate>2014-06-24</orderdate> <msub>msub1337</msub> </general> <mobilenumbers> <number>0612345678</number> </mobilenumbers> </orders> </order> </messagebody> </mobile_orderdetail_ack> |
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 | <?xml version="1.0" encoding="UTF-8"?> <mobile_orderdetail_ack xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <messageheader> <messagetype>mobile_orderdetail_ack</messagetype> <messageversion>01</messageversion> <timestamp>2014-10-13T15:28:04+02:00</timestamp> <reference>abchenkdetank</reference> <requestid>12345-REQUEST-ID</requestid> </messageheader> <messagebody> <order> <general> <customer>Klantnaam</customer> <orderdate>2014-06-24</orderdate> <msub>msub1337</msub> </general> <mobilenumbers> <number>0612345678</number> <number>0612341234</number> <number>0687654321</number> </mobilenumbers> </orders> </order> </messagebody> </mobile_orderdetail_ack> |
Kan dat niet korter?quote:Op maandag 13 oktober 2014 15:42 schreef wobbel het volgende:
Hoe krijg ik van onderstaande XML alle nummers in een array? Soms zijn het 10 nummers, soms is het er maar 1....
Met simplexml_load_string weet ik niet hoe ik hiervan een array moet bakken waar ik vervolgens iets mee kan ik kan dan niet met een foreach loopen door de nummers bijvoorbeeld
Na het laden van simplexml_load_string kan ik er wel een array van printen met print_r ( $xml->messagebody->order->mobilenumbers ); maar dan kan ik er geen foreachje mee doen
[update]
Op de volgende manier is het gelukt. Is dit netjes of is dit om te janken?
[ code verwijderd ]
Voorbeeld met 1 nummer
[ code verwijderd ]
Voorbeeld met 3 nummers
[ code verwijderd ]
1 2 3 4 5 | <?php foreach($xml->messagebody->order->mobilenumbers->number as $value ) { echo "Nummer: " . $value . "<br /><br />"; } ?> |
Dat ligt eraan, als mobilenumbers een scalar value teruggeeft is jouw voorbeeld goed, maar als ie in list-context iets teruggeeft gaat het fout, want dat zit je op een lijst ->number uit te voeren en volgens mij kent een php array geen 'number' method.quote:Op maandag 13 oktober 2014 17:53 schreef papernote het volgende:
[..]
Kan dat niet korter?
[ code verwijderd ]
edit: je voorbeeld XML is invalid (er staat een </orders> die daar niet hoort).
Dat "number" is een onderdeel van de XML, geen PHP aanroep. Zie de voorbeeld XML in de post van wobbel. Mijn code werkt op beide voorbeelden (na de aanpassing van de edit).quote:Op maandag 13 oktober 2014 18:07 schreef slacker_nl het volgende:
[..]
Dat ligt eraan, als mobilenumbers een scalar value teruggeeft is jouw voorbeeld goed, maar als ie in list-context iets teruggeeft gaat het fout, want dat zit je op een lijst ->number uit te voeren en volgens mij kent een php array geen 'number' method.
Mogelijk kan je array_map gebruiken, http://stackoverflow.com/(...)rray-using-array-map
1 2 | REPLACE INTO tabel(naam,stad,leeftijd) VALUES('Jan','Rotterdam','18') |
1 2 | REPLACE INTO tabel(naam,stad,leeftijd) VALUES('Jan','Amsterdam','18') |
1 2 | REPLACE INTO tabel(naam,stad,leeftijd) VALUES('Jan','Rotterdam','20') |
Waar ik over val is niet bestaand zie ik. Ik vond het nogal vreemd dat je $xml->mobilenumbers->number doet en dat ie dan over alle mobile numbers loopt. Daar had ik namelijk een lijst verwacht. Maar kennelijk is dat niet zo zie ik hier.quote:Op maandag 13 oktober 2014 18:42 schreef papernote het volgende:
[..]
Dat "number" is een onderdeel van de XML, geen PHP aanroep. Zie de voorbeeld XML in de post van wobbel. Mijn code werkt op beide voorbeelden (na de aanpassing van de edit).
Of begrijp ik je niet goed?
1 2 3 4 5 6 7 8 9 10 | SELECT * FROM permissions LEFT JOIN user_permissions ON permissions.id = user_permissions.permission_id LEFT JOIN users ON user_permissions.user_id = users.id WHERE permissions.name = 'name.of.permission' AND users.id = 15 |
Een .htaccess in blog maken met:quote:Op woensdag 15 oktober 2014 16:23 schreef wipes66 het volgende:
weet iemand hoe ik een htaccess bestand uit een 'parent' directory kan laten negeren? bv:
public_html/www/index.php
public_html/www/.htaccess
public_html/www/blog/
en als dan public_html/www/blog/index.php wordt opgevraagd dat het bovenliggende .htaccess bestand geheel genegeerd wordt, is dat mogelijk?
1 | RewriteEngine Off |
1 | RewriteConf %{REQUEST_URI} !^/blog/? |
het gaat helaas niet alleen om rewrite rules, maar ook allerlei andere regels (white listing van bestanden etc). het hele htaccess moet dus genegeerd worden.quote:Op woensdag 15 oktober 2014 16:39 schreef Aether het volgende:
[..]
Een .htaccess in blog maken met:
[ code verwijderd ]
óf in de .htaccess toevoegen (uit m'n hoofd):
[ code verwijderd ]
Voor zover ik weet is dat niet mogelijk. Je zou in de bovenliggende htaccess moeten opgeven dat de regels daarin niet gelden voor een specifieke onderliggende map. Voorbeeld: http://stackoverflow.com/(...)ules-in-root-htaccesquote:Op woensdag 15 oktober 2014 16:42 schreef wipes66 het volgende:
[..]
het gaat helaas niet alleen om rewrite rules, maar ook allerlei andere regels (white listing van bestanden etc). het hele htaccess moet dus genegeerd worden.
Ik wil daaruit de tekst tussen <blockquote> en </blockquote> hebben zodat ik tekst tussen tags apart van de rest kan verkrijgen, hiervoor heb ik het volgende bedacht:quote:bla
<blockquote>bla bla bla</blockquote>
bla bla
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN MID( `contents`, LOCATE( '<blockquote>', `contents` ) + 12, (LOCATE( '</blockquote>', `contents` ) - LOCATE( '<blockquote>', `contents` )) - 12 ) ELSE '' END AS post_quote, CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN CONCAT_WS( LEFT( `contents` , LOCATE( '<blockquote>', `contents`) - 1), ' ', RIGHT( `contents` , LENGTH(`contents`) - (LOCATE( '</blockquote>', `contents` ) + 12)) ) ELSE `contents` END AS post_contents |
Hier zou het volgende uit moeten komen:quote:<blockquote>quote 1</blockquote>
reactie 1
<blockquote>quote 2</blockquote>
reactie 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SELECT CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN MID( `contents`, LOCATE( '<blockquote>', `contents` ) + 12, (LOCATE( '</blockquote>', `contents` ) - LOCATE( '<blockquote>', `contents` )) - 12 ) ELSE '' END AS post_quote, CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN CONCAT_WS( LEFT( `contents` , LOCATE( '<blockquote>', `contents`) - 1), ' ', RIGHT( `contents` , LENGTH(`contents`) - (LOCATE( '</blockquote>', `contents` ) + 12)) ) ELSE `contents` END AS post_contents FROM ( SELECT 'bla bla bla <blockquote>quote 1</blockquote>reactie 1<blockquote>quote 2</blockquote> reactie 2' AS `contents` ) AS dummy |
Deze query wordt door Sphinx gebruikt om data te indexeren, ik moet deze data in twee velden in de index hebben zodat ze los van elkaar doorzocht kunnen worden. Ik kan in dit geval niets anders doen dan het in de query afhandelen.quote:Op zondag 19 oktober 2014 08:47 schreef KomtTijd... het volgende:
Dat het kan betekent niet dat je het ook moet willen. Dit lijkt me typisch iets wat je in je businesslogic afhandelt ipv in een query.
Eens, maar gaat in dit geval nietquote:Op zondag 19 oktober 2014 09:01 schreef slacker_nl het volgende:
Hij vind het leuk om zich in moeilijke situaties te knopen.
Maar agreed, dit moet je denk ik niet in je SQL stoppen, maar erbuiten.
Nodig niet, of het handig is hangt af van je toepassing.quote:Op zondag 19 oktober 2014 21:19 schreef xaban06 het volgende:
Normaal heb ik bij een database tabel een veld genaamd 'id' met auto increment. Dit keer heb ik een andere veld welke uniek is en nooit dubbel kan zijn. Is het dan nog steeds handig/nodig om een id veld te hebben?
Gebruikelijk is om zowel de ruwe input als de HTML op te slaan. Waarom je ook nog platte tekst op zou willen slaan zou ik niet weten. Je kunt toch ook zoeken op de html/txt velden?quote:Op zondag 19 oktober 2014 21:19 schreef xaban06 het volgende:
Normaal heb ik bij een database tabel een veld genaamd 'id' met auto increment. Dit keer heb ik een andere veld welke uniek is en nooit dubbel kan zijn. Is het dan nog steeds handig/nodig om een id veld te hebben?
ik dacht anders zoekt ie de tags ook gezellig mee. Ok cool dankjequote:Op zondag 19 oktober 2014 21:44 schreef KomtTijd... het volgende:
[..]
Gebruikelijk is om zowel de ruwe input als de HTML op te slaan. Waarom je ook nog platte tekst op zou willen slaan zou ik niet weten. Je kunt toch ook zoeken op de html/txt velden?
Whut?quote:Op zondag 19 oktober 2014 21:44 schreef KomtTijd... het volgende:
[..]
Gebruikelijk is om zowel de ruwe input als de HTML op te slaan. Waarom je ook nog platte tekst op zou willen slaan zou ik niet weten. Je kunt toch ook zoeken op de html/txt velden?
Daar heb je zeker een punt ja. Je zou kunnen overwegen ook de platte tekst op te slaan idd, maar als je echt een fatsoenlijke zoekfunctie wilt maken komt daar nog heel wat meer bij kijken. Ik heb er geen ervaring me maar weet dat er hele studies maar verricht zijn.quote:Op zondag 19 oktober 2014 21:54 schreef n8n het volgende:
[..]
ik dacht anders zoekt ie de tags ook gezellig mee. Ok cool dankje
Als je id hebt buiten je primary doe je wat fout.quote:Op zondag 19 oktober 2014 21:42 schreef KomtTijd... het volgende:
[..]
Nodig niet, of het handig is hangt af van je toepassing.
een id is toch nooit weg?quote:Op maandag 20 oktober 2014 00:00 schreef Boze_Appel het volgende:
[..]
Als je id hebt buiten je primary doe je wat fout.
Hij bedoelt denk ik een extra id buiten je primary key.quote:
ongetwijfeld, denk voor de html-variant dat in veel gevallen ook op hele pagina’s gecached kan worden. Geeft een mooi beeld van wat er nou allemaal onderhouden/aangepast moet worden met een updatequote:Op zondag 19 oktober 2014 22:00 schreef KomtTijd... het volgende:
[..]
Daar heb je zeker een punt ja. Je zou kunnen overwegen ook de platte tekst op te slaan idd, maar als je echt een fatsoenlijke zoekfunctie wilt maken komt daar nog heel wat meer bij kijken. Ik heb er geen ervaring me maar weet dat er hele studies maar verricht zijn.
ik heb op een site een unieke hash die ik als slug gebruik maar daarnaast ook een id, momenteel omdat ik daar nog op sorteer (oud naar nieuw, wordt nog aangepast). Een id veld maakt verder toch geen reet uit, als in een id is 'gratis'?quote:Op maandag 20 oktober 2014 11:11 schreef Tijn het volgende:
[..]
Hij bedoelt denk ik een extra id buiten je primary key.
Het valt heel erg mee, maar ik zou voor een beetje fatsoenlijke zoekfunctie inderdaad gewoon fatsoenlijke search software gebruiken zoals bijvoorbeeld Apache Solr.Standaard relevantie scoring obv TF/IDF, allerhande mogelijkheden voor stopwords filtering, stemming, synoniemen, enzovoort.quote:Op zondag 19 oktober 2014 22:00 schreef KomtTijd... het volgende:
[..]
Daar heb je zeker een punt ja. Je zou kunnen overwegen ook de platte tekst op te slaan idd, maar als je echt een fatsoenlijke zoekfunctie wilt maken komt daar nog heel wat meer bij kijken. Ik heb er geen ervaring me maar weet dat er hele studies maar verricht zijn.
Ik heb zelf vaak ook een public hash voor het exposen van records aan de buitenwereld, zodat ik niet de interne ids hoef te delen. Ik zou ook niet direct weten waarom dat erg is, maar ik kan me voorstellen dat het geen handig databaseontwerp is als je hetzelfde record via allerlei verschillende ids kan terugvinden.quote:Op maandag 20 oktober 2014 11:13 schreef n8n het volgende:
[..]
ik heb op een site een unieke hash die ik als slug gebruik maar daarnaast ook een id, momenteel omdat ik daar nog op sorteer (oud naar nieuw, wordt nog aangepast). Een id veld maakt verder toch geen reet uit, als in een id is 'gratis'?
op die manier, ik heb alleen een hash van 4 karakters, eerste altijd alpha dus 1.213.056 combinaties wat voor dit project ruim voldoende is. Browsers tonen toch steeds vaker naar een versimpelde url, verder is er geen manier om content er uit te persen voor publiekquote:Op maandag 20 oktober 2014 11:17 schreef Tijn het volgende:
[..]
Ik heb zelf vaak ook een public hash voor het exposen van records aan de buitenwereld, zodat ik niet de interne ids hoef te delen. Ik zou ook niet direct weten waarom dat erg is, maar ik kan me voorstellen dat het geen handig databaseontwerp is als je hetzelfde record via allerlei verschillende ids kan terugvinden.
Bij grote hoeveelheden data scheelt het nog veel meer, zeker in de worst case scenario's.quote:Op maandag 20 oktober 2014 18:53 schreef xaban06 het volgende:
Wat is MySQL trouwens snel zeg als je de juiste indexes toepast factor 10 kwa snelheidswinst
Tabel heeft nu 50.000 records, binnen enkele weken wordt dat een paar miljoen en zal vanaf dan dagelijks met ~800 records groeien.quote:Op maandag 20 oktober 2014 19:16 schreef Monolith het volgende:
[..]
Bij grote hoeveelheden data scheelt het nog veel meer, zeker in de worst case scenario's.
Dan ga je dat verschil wel merken. Eigenlijk zou je alle (select)queries een keer met explain moeten bekijken om te zien waar je nog winst kunt behalen.quote:Op maandag 20 oktober 2014 22:15 schreef xaban06 het volgende:
[..]
Tabel heeft nu 50.000 records, binnen enkele weken wordt dat een paar miljoen en zal vanaf dan dagelijks met ~800 records groeien.
De juiste engine toepassen scheelt ook enorm. Veel mensen geilen op InnoDB vanwege contrainsts en dergelijke, maar gebruiken het niet of passen het toe op tabellen die amper inserts/updates krijgen maar enkel selects. Dan gewoon lekker naar MyIsam gaan en het scheelt een factor veel in snelheid.quote:Op maandag 20 oktober 2014 18:53 schreef xaban06 het volgende:
Wat is MySQL trouwens snel zeg als je de juiste indexes toepast factor 10 kwa snelheidswinst
Professionals zullen het fijne er van weten verwacht ik. Ik doe het gewoon als hobby, op werk heb ik er niks mee te maken.quote:Op maandag 20 oktober 2014 22:26 schreef Boze_Appel het volgende:
[..]
De juiste engine toepassen scheelt ook enorm. Veel mensen geilen op InnoDB vanwege contrainsts en dergelijke, maar gebruiken het niet of passen het toe op tabellen die amper inserts/updates krijgen maar enkel selects. Dan gewoon lekker naar MyIsam gaan en het scheelt een factor veel in snelheid.
Degelijke DBA bij grotere hoeveelheden is een kunstje apart.
De vraag is niet zozeer wat de verhouding is tussen selects en inserts / updates. MyISAM kent bijvoorbeeld geen transacties. Die heb je soms gewoon nodig.quote:Op maandag 20 oktober 2014 22:26 schreef Boze_Appel het volgende:
[..]
De juiste engine toepassen scheelt ook enorm. Veel mensen geilen op InnoDB vanwege contrainsts en dergelijke, maar gebruiken het niet of passen het toe op tabellen die amper inserts/updates krijgen maar enkel selects. Dan gewoon lekker naar MyIsam gaan en het scheelt een factor veel in snelheid.
Degelijke DBA bij grotere hoeveelheden is een kunstje apart.
Voor veel dingen dan ook weer niet. Het is uiteraard net de toepassing wat je nodig hebt.quote:Op maandag 20 oktober 2014 22:35 schreef Monolith het volgende:
[..]
De vraag is niet zozeer wat de verhouding is tussen selects en inserts / updates. MyISAM kent bijvoorbeeld geen transacties. Die heb je soms gewoon nodig.
Zeker, of het alternatief voor MySQL, MariaDB.quote:Daarnaast kun je in plaats van MySQL ook gewoon bijvoorbeeld Postgresql gebruiken.
idd, zonder de juiste indexes wordt iedere database onwerkbaar traag met datsoort datasets.quote:Op maandag 20 oktober 2014 22:20 schreef Light het volgende:
[..]
Dan ga je dat verschil wel merken. Eigenlijk zou je alle (select)queries een keer met explain moeten bekijken om te zien waar je nog winst kunt behalen.
En je buffers goed instellen. Van de standaard configs van MySQL of PostgreSQL wordt geen grotere hoeveelheid data vrolijk.quote:Op maandag 20 oktober 2014 22:56 schreef KomtTijd... het volgende:
[..]
idd, zonder de juiste indexes wordt iedere database onwerkbaar traag met datsoort datasets.
Een flinke sloot geheugen in je server helpt ook.
Een kaartenbak heeft nou meestal juist wel een vorm van indexering.quote:Op maandag 20 oktober 2014 23:01 schreef Boze_Appel het volgende:
[..]
En je buffers goed instellen. Van de standaard configs van MySQL of PostgreSQL wordt geen grotere hoeveelheid data vrolijk.
Zonder indexes heb je gewoon een kaartenbak.
Tegen die tijd is het misschien sowieso een idee om een aparte database server te hebben.quote:Op maandag 20 oktober 2014 22:56 schreef KomtTijd... het volgende:
[..]
idd, zonder de juiste indexes wordt iedere database onwerkbaar traag met datsoort datasets.
Een flinke sloot geheugen in je server helpt ook.
Punt, maar je kan niet zoeken op de inhoud van de kaartenbak, alleen wat op het labeltje staat. Dat is an sich een index, maar alleen een primary dan.quote:Op maandag 20 oktober 2014 23:04 schreef Monolith het volgende:
[..]
Een kaartenbak heeft nou meestal juist wel een vorm van indexering.
Een sloot geheugen is alleen zinvol als je ook goede indexes hebt.quote:Op maandag 20 oktober 2014 22:56 schreef KomtTijd... het volgende:
[..]
idd, zonder de juiste indexes wordt iedere database onwerkbaar traag met datsoort datasets.
Een flinke sloot geheugen in je server helpt ook.
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 | <?php header('Content-Type: text/html; charset=utf-8'); function extractData($url, $clientName, $curr) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_REFERER, 'Mozilla/5.0 (compatible; ' . $clientName. ' PHP client; '.php_uname('s').'; PHP/'.phpversion().')'); curl_setopt($ch, CURLOPT_USERAGENT, "CakeScript/0.1"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $json = curl_exec($ch); curl_close($ch); $array = json_decode($json,true); return $array; } $url = 'http://www.bitstamp.net/api/ticker/'; $clientName = 'Bitstamp'; $bitstamp = extractData($url,$clientName); $url = 'https://www.bitstamp.net/api/eur_usd/'; $clientName = 'Blockchain'; $blockchain = extractData($url,$clientName); echo "<pre>"; print_r($bitstamp); print_r($blockchain); echo "</pre>"; ?> |
1 2 3 | <?php $price= $high / $sell; ?> |
$bitstamp en $blockchain zijn beide array. Met $bitstamp['high'] kun je een waarde uitlezen:quote:Op dinsdag 21 oktober 2014 14:55 schreef Drakire het volgende:
Vraagje:
Ik haal via een api bitcoinprijzen in USD op alsmede de exchange rate van USD naar EUR
[ code verwijderd ]
Dit geeft het volgende resultaat:
[ afbeelding ]
Nu wil ik het getal dat al resultaat bij high komt (388.00) delen door het getal dat bij sell staat (1.2771)
Alleen weet ik niet hoe ik deze waardes los terugkrijg in php zodat ik bijvoorbeeld
[ code verwijderd ]
kan doen.
1 | $price = $bitstamp['high'] / $bitchain['sell'] |
Had al gezocht maar kwam er niet uit vanwege de 2 verschillende arrays, achteraf is het toch best simpel .quote:
thx.quote:Op dinsdag 21 oktober 2014 14:59 schreef Aether het volgende:
[..]
$bitstamp en $blockchain zijn beide array. Met $bitstamp['high'] kun je een waarde uitlezen:
[ code verwijderd ]
nee de timestamp moet verschillend zijn want ik gebruik "today 00:00" en geen "today" of "-24 hours". de laatste 2 zijn relatief (in verhouding met de huidige timestamp) en zijn voor alle tijdzones hetzelfde, maar het moment van de eerste seconden van de dag moet per tijdzone verschillend zijn. ik dacht dat het westen dan het laagste moest zijn en meer richting het oosten hoger. je kan het zelf testen met:quote:Op woensdag 22 oktober 2014 20:06 schreef KomtTijd... het volgende:
Wat doe je precies dan?
Als ik het zo bekijk zouden ze allemaal dezelfde timestamp moeten hebben. Maar de timestamps die jij toont komen in de verste verte niet overeen met de daarbij genoemde datum/tijd, ook de minuten en secondes niet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php $timezone = new DateTimeZone('America/New_York'); $date = new DateTime('today 00:00', $timezone); var_dump($date->format('r')); var_dump($date->getTimestamp()); echo "\n\n"; $timezone = new DateTimeZone('Europe/Amsterdam'); $date = new DateTime('today 00:00', $timezone); var_dump($date->format('r')); var_dump($date->getTimestamp()); echo "\n\n"; $timezone = new DateTimeZone('Australia/Sydney'); $date = new DateTime('today 00:00', $timezone); var_dump($date->format('r')); var_dump($date->getTimestamp()); echo "\n\n"; ?> |
maar de volgorde van de timestamp komt niet overeen met de volgorde van oost naar west, dat is wat ik niet snapquote:Op woensdag 22 oktober 2014 20:15 schreef KomtTijd... het volgende:
Laatste keer dat ik checkte kwam de zon in het oosten op en ging deze in het westen onder Dus in het oosten is het eerder middennacht dan in het westen.
Een timestamp kent geen tijdzone, maar als je van een tijd naar een timestamp gaat heb je die tijdzone wel nodig. De timestamp van 2014-10-22 18:00:00+0200 (Amsterdam) is anders dan die van 2014-10-22 18:00:00+0100 (Londen), hoewel het beide keren 18:00 vandaag is.quote:Op woensdag 22 oktober 2014 20:33 schreef Monolith het volgende:
Gezien de tijden in je resultaten wordt 00:00 niet meegenomen.
Afgezien daarvan, wordt de string niet omgezet naar GMT oid en vervolgens omgerekend met de timezone, waarbij vervolgens de timestamp enkel de datum en tijd, maar niet de timezone meerekent?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |