. .

Kategorie: PHP RSS-Feed für diese Kategorie

0

PHP: Klasse zur statistischen Fehlererrechnung und Prozessfähigkeitsuntersuchung

statistics_php

In diesem Beitrag geht es darum, aus festgestellten Messergebnissen, die zum Beispiel in einer Datenbank abgelegt sind, eine sogenannte Prozessfähigkeitsanalyse zu erstellen. Diese wird beispielsweise in der Automobilindustrie für die Qualitätssicherung gefordert und benötigt. Bekannte geforderte Werte sind der Prozessfähigkeitsindex CpK – eine Kennzahl zur statistischen Bewertung eines Prozesses – oder ebenenfalls der Six-Sigma-Wert sowie einige andere Werte. Mininum, Maximum, Durchschnitt, Median, Abstand (Range), Modus, Moment, Varianz, Standardabweichung, Standardfehler, Schiefe, Woelbung (Exzess), Variationskoeffizient, Prozessfaehigkeitsindex, Wahrscheinlichkeitsdichtefunktion, Verteilungsfunktion, PPM und Fehlerhaftigkeit können mit unten gelisteter PHP-Klasse bestimmt werden. Ausgangslage der zu berechnenden Werte zur Prozessfähigkeitsanalyse können Messdaten aus dem Messlabor sein, die

0

PHP: Daten von api.xing.com abrufen

PHP Code

Seit letztem Jahr bietet Xing eine API an, mit der man Daten zum Beispiel seines eigenen Profils abrufen kann. Hierbei verwendet Xing zur Authentifizierung das OAuth-Protokoll in Version 1. Um die API nutzen zu können wird ein Account im Xing Developer Bereich benötigt, sowie ein Consumer Key und ein Token. Der Developer-Account kann mit dem eigenen Profilaccount „freigeschalten“ werden; der Consumer Key (Test) kann über das Webinterface von dev.xing.com erstellt werden. Um daraufhin an den für den Abruf der Xing-Daten benötigten Access-Token zu kommen, empfiehlt es sich, das von Xing bereitgestellte Test-Script (in ruby geschrieben) auf https://dev.xing.com/docs/examples zu verwenden. Hier

0

PHP: Versenden von eMails über einen (entfernten) SMTP-Server

PHP Code

Über fsockopen() können mit PHP TCP-Verbindungen aufgebaut werden – so auch zu einem SMTP-Dienst. Beim Versenden von eMails müssen bei der SMTP-Sitzung natürlich bestimmte Vorgaben und Abläufe erfüllt sein (siehe auch RFC 821). Die kleine Klasse „eMail“ ermöglicht das Versenden von eMails auf recht einfache Weise. Allerdings ist sie an die Bedürfnisse des deutschen Zeichensatzes angepasst. Bei der Authentifizierung sollte darauf geachtet werden, dass der SMTP-Server die Methode der Authentifzierung auch unterstützt bzw. zulässt. Unten in diesem Beitrag ist ein Beispiel, wie dann über die Klasse „eMail“ eine HTML-eMail versendet werden kann.   <?PHP /* * this is a small

0

Plugin: mechanic-visitor-counter v.1.8

Da sysalyser.de dringend nach fünf Jahren ein neues Layout benötigte, habe ich mich zur leichteren Handhabe dafür entschieden, ein vorgefertigtes Tool zur Datenverwaltung zu verwenden. Somit bin ich bei WordPress gelandet und habe dabei auch das Plugin „mechanic-visitor-counter“ installiert. Hier ist mir allerdings aufgefallen, dass die Art des Loggings nicht meinen Vorstellungen entsprach. Wiederkehrende Benutzer werden zwar nach Tagen getrennt, aber nicht nach IP, da die IP-Adresse der primäre Schlüssel der dahinterliegenden mySQL-Tabelle ist (nachzuvollziehen bei Standard-Installation der Version 1.8 in der originalen Datei [DocumentRoot]/wp-content/plugins/mechanic-visitor-counter/wp-statsmechanic.php). Daher ist ein mehrfaches Ablegen der IP-Adresse in der Tabelle nicht möglich. Das bedeutet, dass

0

JpGraph: Beispiel: AccBarPlot: Positionsseite in Google

JpGraph: Beispiel: AccBarPlot: Positionsseite in Google

  <?PHP $monate = array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); foreach ($monate as $monat) { $liste[$monat] = array(); for ($r = 0; $r < 5; $r++) $ergebnis[$r][] = 0; } /* * access_log wurde vorher mit * "grep '/2008:' access_log" auf das Jahr 2008 reduziert */ $handle = fopen("access_log", "r"); while (!feof($handle)) { $zeile = fgets($handle, 4096); $monat = explode("/", $zeile); $monat = $monat[1]; if ($p = (strstr($zeile, "google"))) { if ($p = (strstr($p, "?"))) { $p = substr($p, 1); if ($q = explode("&", $p)) { $query = NULL; $start = 1; foreach ($q

0

JpGraph: Klassenerweiterung „ErrorPlotValues“

JpGraph: Klassenerweiterung „ErrorPlotValues“

Die Klasse „Plot“ bzw. „ErrorPlots“ von JpGraph bot nicht die Möglichkeit, die entsprechenden Werte darzustellen, die den Balken bestimmen. Der Entwickelr von JpGraph konnte sich leider auf meine Anfrage nicht melden. Daher gebe ich die Klassenerweiterung (recht spezifisch) hier bekannt: <?PHP /* * a small class extension for displaying percentage or absolute values * inside ErrorPlots * by Hofmann R. Julian // 16. Januar 2009 * # new ErrorPlotValues( # [array like for normal ErrorPlot], # [xValues array like for normal ErrorPlot], # [FALSE = percentage, TRUE = absolute values], # [width of the upper and lower line] # );

0

JpGraph: Beispiel: GanttBar: Hits durch Suchmaschinen

JpGraph: Beispiel: GanttBar: Hits durch Suchmaschinen

  <?PHP function sBrowser($stext) { if (strpos($stext, "Googlebot") > 0) return (0); if (strpos($stext, "oogle-Sitemaps") > 0) return (0); if (strpos($stext, "Yahoo!") > 0) return (1); if (strpos($stext, "snbot") > 0) return (2); return(FALSE); } $suche = "2008-11-17"; $suchmaschinen = array( array("Google", "#00B00C"), array("Yahoo", "#0095FF"), array("MSN", "#E15600") ); list($jahr, $monat, $tag) = explode("-", $suche); $kw = date("W", strtotime($suche)); for ($z = 0; $z < count($suchmaschinen); $z++) $suMa[$z][] = 0; $monate = array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); $handle = fopen("access_log2", "r"); while (!feof($handle)) { $zeile = fgets($handle, 4096); $gBrowser = explode("\"", $zeile); if (strstr($gBrowser[1],

0

JpGraph: Beispiel: RadarPlot: Hits nach Stunde

JpGraph: Beispiel: RadarPlot: Hits nach Stunde

  <?PHP function gProzent($alle, $anteil, $stellen = 2) { if ($anteil > 0) return (round(($anteil / ($alle / 100 )), $stellen)); else return 0; } for ($z = 12; $z > 0; $z–) { if ($z < 10) $z = "0{$z}"; $legende[] = "{$z}\n".((int) $z + 12); } $handle = fopen("access_log", "r"); while (!feof($handle)) { $zeile = fgets($handle, 4096); $gValidHit = explode("\"", $zeile); if (strstr($gValidHit[1], "?")) { $p = explode(" ", $zeile); $aHits[(int) substr($p[3], 13, 2)]++; } } fclose ($handle); for ($z = 0; $z <= 11; $z++) $aHitsPM[$z] = $aHits[(11 – $z)]; for ($z = 0; $z <= 11;

0

JpGraph: Beispiel: LinePlot: Statistik des entstandenen Traffics

JpGraph: Beispiel: LinePlot: Statistik des entstandenen Traffics

  <?PHP function sBrowser($stext) { if (strpos($stext, "Googlebot") > 0) return (2); if (strpos($stext, "oogle-Sitemaps") > 0) return (2); if (strpos($stext, "Yahoo!") > 0) return (2); if (strpos($stext, "snbot") > 0) return (2); if (strpos($stext, "Safari") > 0) return (1); if (strpos($stext, "Firefox") > 0) return (1); if (strpos($stext, "MSIE") > 0) return (1); if (strpos($stext, "pera/") > 0) return (1); if (strpos($stext, "BonEcho") > 0) return (1); if (strpos($stext, "ozilla") > 0) return (1); return (NULL); } $Monat = "Nov/2008"; $lMonat = "Oct/2008"; $monate = array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); $WochenTage =

0

JpGraph: Beispiel: ScatterPlot: Statistik über die Abweichung der Besucher nach Tagen

JpGraph: Beispiel: ScatterPlot: Statistik über die Abweichung der Besucher nach Tagen

  <?PHP /* * Suchmaschinen sind inbegriffen. */ $Monat = "Nov/2008"; $Anzahl = date("t", strtotime("01. ".(str_replace("/", " ", $Monat)))); $WochenTage = array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"); for ($z = 1; $z <= $Anzahl; $z++) { $aBesucher[] = 0; $xAchse[] = $z; } $handle = fopen("access_log", "r"); while (!feof($handle)) { $zeile = fgets($handle, 4096); $gURL = explode("\"", $zeile); if (strstr($gURL[1], "?")) { if (strstr($gURL[0], $Monat)) { $p = explode(" ", $zeile); $ts = strtotime((substr($p[3], 8, 4))."-" .(date("m", strtotime("01. ".(str_replace("/", " ", $Monat))))) ."-{$p[3][1]}{$p[3][2]} ".(substr($p[3], 13, 8))); $Besucher[$p[0]][0] = $ts; if ( (!($Besucher[$p[0]][1])) || (($oBrowser <> $fBrowser) && ($p[0] ==

0

JpGraph: Beispiel: PiePlotC: Statistik der Besucher nach Land bzw. Domain

JpGraph: Beispiel: PiePlotC: Statistik der Besucher nach Land bzw. Domain

  <?PHP function gDomain($sDomain, &$vDomains) { $c = geoip_country_code_by_name($sDomain); if (in_array($c, $vDomains)) return (array_search($c, $vDomains)); return (count($vDomains) – 1); } /* * Die hier dargestellte Ermittlung der Domains spiegelt nicht die * tatsaechliche Verteilung der Domains der Besucher da, da mehrfache * Besuche gleicher IP-Adressen nicht beruecksichtig werden. */ $Domains = array("Deutschland", "Oesterreich", "Schweiz", "andere"); $vDomains = array("DE", "AT", "CH", "%"); for ($z = 0; $z < count($Domains); $z++) $aDomains[$z] = 0; $handle = fopen("access_log", "r"); while (!feof($handle)) { $zeile = fgets($handle, 4096); $iDomain = explode("\"", $zeile); if (strstr($iDomain[1], "?")) { $p = explode(" ", $zeile); if (!$bDomains[$p[0]]) $bDomains[$p[0]] =

0

JpGraph: Beispiel: BarPlot: Statistik der verwendeten Browser eines Besuchers

JpGraph: Beispiel: BarPlot: Statistik der verwendeten Browser eines Besuchers

  <?PHP function gProzent($alle, $anteil, $stellen = 2) { if ($anteil > 0) return (round(($anteil / ($alle / 100 )), $stellen)); else return 0; } function sBrowser($stext) { if (strpos($stext, "Googlebot") > 0) return(10); if (strpos($stext, "oogle-Sitemaps") > 0) return(10); if (strpos($stext, "Yahoo!") > 0) return(11); if (strpos($stext, "snbot") > 0) return(12); if (strpos($stext, "Safari") > 0) return (4); if (strpos($stext, "Firefox") > 0) return (2); if (strpos($stext, "MSIE") > 0) return (0); if (strpos($stext, "pera/") > 0) return (3); if (strpos($stext, "BonEcho") > 0) return (4); if (strpos($stext, "ozilla") > 0) return (1); return (5); } $browser = array("Internet\nExplorer",

0

JpGraph: Beispiel: LinePlot: Statistik der Besucher, die von google kamen

JpGraph: Beispiel: LinePlot: Statistik der Besucher, die von google kamen

  <?PHP $monate = array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); foreach ($monate as $monat) $liste[$monat] = array(); /* * access_log wurde vorher mit * "grep '/2008:' access_log" auf das Jahr 2008 reduziert */ $handle = fopen("access_log", "r"); while (!feof($handle)) { $zeile = fgets($handle, 4096); $monat = explode("/", $zeile); $monat = $monat[1]; if ($p = (strstr($zeile, "google"))) { if ($p = (strstr($p, "?"))) { $p = substr($p, 1); if ($q = explode("&", $p)) { foreach ($q as $t) { if (substr($t, 0, 2) == "q=") { $t2 = explode("\"", $t); $liste[$monat][] = ($t2[0]) ? $t2[0]

0

Barcodes mit PostScript und PHP

Barcodes mit PostScript und PHP

Hier beschreibe ich eine mögliche Weise, 3-aus-9 – Barcodes über php als PostScript-Dateien direkt drucken zu lassen. Grundlage hierfür war die Anforderung, Seriennummern als Barcodes auf Labels zu drucken. Die in diesem Beispiel vorkommenden Positionen des Textes oder der Barcodes müssen wahrscheinlich an die eigenen Anforderungen angepasst werden.     Grundsätzlich wird eine Funktion in PHP geschrieben, in der der Text für die Postscript-Datei festgelegt wird. Da PostScript ebenfalls über Funktionen und deren Aufrufe verfügt, stelle ich folgende als Grundlage dar. Zuerst die Funktion, die die eigentliche Berechnung des Barcodes 3-aus-9 vornimmt. Dann die Funktion, die den Barcode generiert und