PHP: URL + Scriptname

0

Posted on : 08-12-2009 | By : Patrick | In : Ausbildung, Internet, Software, Webentwicklung

Kurze Notiz, quasi nur für mich selbst.
Um die URL inkl. des aktuellen Scriptnamen zu erhalten kann, sollte man dieses Gebilde verwenden:

“http://” . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']

Sollte HTTPS verwendet werden, bzw die Möglichkeit bestehen das es verwendet werden könnte, kann mit Hilfe von $_SERVER["HTTPS"] noch eine Weiche eingebaut werden.

Mehr zu $_SERVER weiß außerdem php.net

PHP: Exceptions und SimpleXMLElement

0

Posted on : 22-07-2009 | By : Patrick | In : Ausbildung, Internet, Webentwicklung

Was passiert wenn man mit SimpleXML eine XML-Datei öffnet, die ungültiges XML enthält?
Sie gibt eine Exception aus!
Diese Exception kann man aber nicht richtig fangen.
Siehe PHP-Bug #39157.


$file = "beispiel.xml";
try {
$xml = new SimpleXMLElement(XMLPATH . $file, null, true);
} catch (Exception $e) {
echo $file . " : Ungueltiges XML\n";
continue;
}

Würde hier eine Datei mit ungültigem XML geöffnet werden, so wird eine Exception geworfen, direkt ausgegeben und der catch-Block wird auch noch ausgeführt.

Was nun machen wenn man keine Exception ausgegeben haben möchte?
Ein @ vor die Zuweisung stellen, um die Fehlerausgabe zu unterdrücken!


$file = "beispiel.xml";
try {
@$xml = new SimpleXMLElement(XMLPATH . $file, null, true);
} catch (Exception $e) {
echo $file . " : Ungueltiges XML\n";
continue;
}

Und schon wird die Exception gefangen und NURNOCH der catch-Block ausgeführt – ohne vorheriges ausgeben der eigentlichen Exception.

Kurz notiert: Stündlicher Cronjob!

0

Posted on : 23-04-2009 | By : Patrick | In : Internet, Webentwicklung

Wenn ein Cronjob stündlich laufen soll dann muss man das mit
00 */1 * * * command
anstellen!
* */1 * * * führt nur zu einem Amoklauf :D

SQL: Datensätze gruppiert nach einer Spalte zählen

0

Posted on : 06-04-2009 | By : Patrick | In : Ausbildung, Webentwicklung

Gestern auf der Arbeit hatte ich das Problem, dass ich in einer SQL-Query einen COUNT durchführen musste, jedoch musste beim zählen eine ID/Spalte gruppiert werden.

id wert
1 a
1 b
2 c
2 x
2 y
3 z

Angenommen man hat so eine Tabelle und möchte nun wissen wie viele verschiedene Werte ID hat.
Dazu benötigt man die Funktion “distinct” ( nachschlagen in der MySQL-Dokumentation ).
Und wie sieht die Query nun aus?
SELECT count(distinct(id)) AS count FROM tabelle_1
In diesem Beispiel würde man als Ergebnis 3 erhalten.

Quickfix: Probleme mit UTF-8 und Wordpress

0

Posted on : 05-04-2009 | By : Patrick | In : Blog-News, Internet, Webentwicklung

Ich hab eben gemerkt das die Seiten hier im Firefox immer ISO-8859-15 kodierte Seiten ausgegeben werden.
Das wiederum verursacht Probleme mit UTF-8 kodierten Umlauten/Sonderzeichen, bzw. kann diese verursachen.

ACHTUNG! Nicht sofort die Änderungen vornehmen die hier beschrieben werden, sondern zuerst den gesamten Artikel lesen!!!

Ich habe ein paar Nachforschungen angestellt, bin aber auf keine Antwort gekommen warum da ISO ankommt im Browser..
Da ich Wordpress nicht großartig umfummeln wollte habe ich ein dirty Quickfix herausgefunden.
Es müssen zwei Dateien angepasst werden – einmal für die externe Darstellung und einmal für den Admin-Bereich (nett für die Wordpress-Feeds auf dem Dashboard).
In beide Dateien muss jeweils nur eine Zeile eingefügt werden:
header("Content-Type: text/html; charset=utf-8");
Um welche Dateien handelt es sich?
Um die wp-blog-header.php im WP Hauptverzeichniss und die admin.php unter /wp-admin/.
Wohin muss das nun?
Am einfachsten unter den Kommentar-Block. Dann findet es man auch recht schnell wieder wenn es dann doch mal wieder raus muss.

Mit diesem Fix habe ich keine merkwürdigen Sonderzeichen bei Feeds oder auch sonst im Admin-Panel.

Update: So ganz klappt es im Admin-Panel doch noch nicht.. Ich versuche aber noch dafür eine Möglichkeit zu finden. Mit dem einbinden in die wp-blog-header.php hatte ich jetzt noch keine Probleme

Update2: Also.. Problem gelöst.. Dieser ganze scheiß kam von dem Plugin “statpress“!
Ich habe es jetzt rausgeschmissen und zack – alles geht wieder.. Ohne die oben genannten Modifikationen!
Also solltet ihr statpress verwendet und solche Probleme haben – WEG DAMIT!

PHP: T_PAAMAYIM_NEKUDOTAYIM

0

Posted on : 04-02-2009 | By : Patrick | In : Ausbildung, Webentwicklung

Mir ist eben ein Fehler über der Weg gelaufen der irgendwas mit “T_PAAMAYIM_NEKUDOTAYIM” zu tun hat..

Woher kommts?

Wenn man versucht eine Konstante mit isset() zu überprüfen scheppert es ordentlich..

Konstanten müssen mit defined() überprüft werden!

 

HAH! Wieder etwas dazugelernt!

PHP: Auf ganze Zahlen runden

0

Posted on : 27-01-2009 | By : Patrick | In : Webentwicklung

Da die PHP-Funktionen ceil(), floor() und round() nicht immer ganz reichen bzw. so runden wie ich es brauche habe ich mich auf die Suche gemacht wie man Zahlen am besten runden kann. Dabei habe hab eben gelesen, dass man mit der PHP-Funktion round() nicht nur auf die nächste ganzen Zehnerstelle runden kann, sondern auch auf die Hunderter, Tausender usw..
Dies kann man ganz einfach über einen Parameter steuern. Bekanntlich kann man ja mit -1 auf die nächste volle Zehnerstelle runden und mit normalen, nicht negativen Zahlen auf die dementsprechende Anzahl von Kommastellen. Verringert man die negative Zahl (-1) nun nochmal auf -2 so wird auf die nächste volle Hunderterstelle auf bzw. abgerundet.

<?php

echo round(1234, -2); // ergibt 1200

echo round(24636, -3) // ergibt 25000

?>

Jawoll. Das ist doch was feines!