{"id":77,"date":"2018-09-29T22:55:18","date_gmt":"2018-09-29T22:55:18","guid":{"rendered":"https:\/\/math-brownies.de\/?p=77"},"modified":"2018-09-30T00:02:58","modified_gmt":"2018-09-30T00:02:58","slug":"arrays-und-google-rauswerfen","status":"publish","type":"post","link":"https:\/\/math-brownies.de\/index.php\/2018\/09\/29\/arrays-und-google-rauswerfen\/","title":{"rendered":"Arrays und Google rauswerfen"},"content":{"rendered":"<p>Ich habe heute zwei Bereiche der Webseitenerstellung genauer betrachtet: Arrays und die l\u00e4stige Sache mit Google in Bootstrap.<\/p>\n<h3>Arrays<\/h3>\n<p>Ein Array ist eine Variable, die mehrere Elemente enth\u00e4lt &#8211; also eine geordnete Liste, deren Eintr\u00e4ge automatisch indiziert werden, dabei beginnt die Z\u00e4hlung bei 0.<\/p>\n<p>In php sieht das so aus:<\/p>\n<pre>$data=[Apfel, Birne, Banane];\r\necho $data[1]<\/pre>\n<p>Das g\u00e4be dann als Ausgabe &#8222;Birne&#8220;. Als Erweiterung ist es m\u00f6glich, Arrays in Arrays zu legen, dann bekommt man eine Art Tabelle oder Matrix.<\/p>\n<p>Wenn man nicht mit Indizes arbeiten m\u00f6chte, sondern den Elementen Namen zuweisen m\u00f6chte, geht das auch. Man nennt es dann Hashtable und die Namensgeber hei\u00dfen <em>keys,<\/em> die Inhalte <em>value<\/em>. Wie bei normalen Arrays auch kann man in einen Arrays Hashtables packen, dann kriegt man eine Tabelle mit Spaltenbezeichnungen abgebildet. Will man Zeilen- und Spaltenbezeichnungen, m\u00fcsste man Hashtables in eine Hashtable f\u00fcllen.<\/p>\n<pre>$date=[\r\n      [day=\"Montag\", Fach1=\"LI\", Fach2=\"LI\", Fach3=\"LI\"],\r\n      [day=\"Dienstag\", Fach1=\"frei\", Fach2=\"frei\", Fach3=Mathe\"]\r\n];\r\n  echo $data[1['day']];<\/pre>\n<p>Das erg\u00e4be Montag, vermute ich. Tats\u00e4chlich habe ich in meinem Fall es anders aufgerufen: In einer <strong>foreach-Schleife<\/strong>.<\/p>\n<pre>foreach($data as $v){echo $v['day'].\" \";}<\/pre>\n<p>Das erg\u00e4be jetzt hier die Ausgabe <em>Montag Dienstag<\/em>.<\/p>\n<h3>Google<\/h3>\n<p>Wenn man boostrap benutzt, hat man leider den datenschutztechnischen Nachteil, dass Schriften und Javascript \u00fcber google nachgeladen werden. Google nimmt sich dabei heraus, die IP-Adressen meiner Beuscher (manchmal gek\u00fcrzt, aber bin ich mir sicher?) auszuwerten. Ehrlich gesagt ist es mir zuviel Aufwand, die Datenschutzerkl\u00e4rung daf\u00fcr zu schreiben und es ist ja auch kein sicherheitssensibler Bereich, in dem ich Updates immer ganz schnell brauche, also habe ich die Schriften und das jquery einfach selbst gehostet.<\/p>\n<p>F\u00fcr die google-fonts nutze ich den <a href=\"https:\/\/google-webfonts-helper.herokuapp.com\/fonts\/open-sans?subsets=cyrillic,latin\">Web Helper\u00a0<\/a>. Man muss aber zuerst wissen, welche Schriftfamilie denn \u00fcberhaupt ben\u00f6tigt wird. Dazu habe ich die Webseite mit dem <a href=\"https:\/\/webbkoll.dataskydd.net\/en\/\">Tool von datasydd.net<\/a> durchgecheckt und bekomme dort genau den Link angezeigt, in dem die benutzte Familie steht. Diese Schriften kann man sich im Web Helper herunterladen, au\u00dferdem bekommt man css-Snippets. Die Snippets habe ich in eine neue css-Datei gelegt (mit Eclipse angelegt) und diese open-sans.css genannt, nach der Familie. Dann habe ich in Eclipse alle css-Daten nach google durchsucht und festgestellt, dass die Schriftarten mittels import in der main.css eingebunden werden. An der Stelle den Link ge\u00e4ndert zu dem Ort, an dem ich die heruntergeladenen Schrift-Dateien entpackt hatte (das ist standardm\u00e4\u00dfig im Ordner fonts und da habe ich es auch gelassen) &#8211; alle Schriften ab sofort nicht mehr von Google.<\/p>\n<p>F\u00fcr jquery, welches ebenfalls von google geladen wurde (das stellt man fest, wenn man mal alle Dateien nach google durchsucht, aber auch dataskydd meldet es) war das workaround ein wenig komplizierter: In github die jquery-dist gesucht, heruntergeladen (daf\u00fcr braucht man einen github-Account) und in meinem Ordner entpackt. Dann habe ich alle Dateien aus dem dist-Ordner in meinen js-Ordner kopiert und in allen php und html-Domukenten, die ich bisher hatte, den Link ersetzt. (Waren nur 5 und es l\u00e4sst sich in Eclipse leicht finden, weil man in der Suche bei den Ergebnissen auf den Pfeil klicken kann.)<\/p>\n<p>Und dann habe ich mir noch die font-awesome.min.css &#8222;gewatschelt&#8220; (also mit duckduckgo gesucht), in den css-Ordner gepackt und dann das Nachladen von maxcnd ersetzt, indem ich auch da in allen Dateien den Link ver\u00e4ndert habe. Tadaa, keine Third-Parties mehr, Datenschutzerkl\u00e4rung in extra-easy.<\/p>\n<h3>Sonstiges<\/h3>\n<ul>\n<li>Bilder bearbeiten: irfan View &#8211;&gt; Batch Bearbeitung. Spart viel Zeit!<\/li>\n<li>Eclipse braucht ewig und h\u00e4ngt sich halb auf, wenn man zu viele stark fehlerhafte Zeilen codet. (Klammern setzen!)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ich habe heute zwei Bereiche der Webseitenerstellung genauer betrachtet: Arrays und die l\u00e4stige Sache mit Google in Bootstrap. Arrays Ein Array ist eine Variable, die mehrere Elemente enth\u00e4lt &#8211; also eine geordnete Liste, deren Eintr\u00e4ge automatisch indiziert werden, dabei beginnt die Z\u00e4hlung bei 0. In php sieht das so aus: $data=[Apfel, Birne, Banane]; echo $data[1] [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[9,3,6,5,10],"tags":[],"class_list":["post-77","post","type-post","status-publish","format-standard","hentry","category-datenschutz","category-informatik","category-it-verwaltung","category-php","category-webseitenpflege"],"_links":{"self":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts\/77","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/comments?post=77"}],"version-history":[{"count":5,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts\/77\/revisions"}],"predecessor-version":[{"id":82,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts\/77\/revisions\/82"}],"wp:attachment":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/media?parent=77"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/categories?post=77"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/tags?post=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}