Archive for the ‘ PHP ’ Category

rand() im Kommabereich

Hallo,

für alle die, die um 23:48 Uhr gerne mal nach Sachen googlen, die eigentlich auch anders lösbar sind hier dann mal eine nette Beschreibung, wie man mit der Funktion rand() in php auch Kommazahlen generieren kann:
$Vote=rand(0,500);
if($Vote>0){
$Vote=$Vote/100;
}

Das ganze ist sehr Simpel, aber tut Absolut seinen Zweck :)

Alternative zu file_get_contents()

Die Funktion file_get_contents() läd im Grunde nur eine Datei rein oder die Ausgabe. Dies kann aber zu Fehler führen, wenn die php.ini Einstellung diese blockt. Sollte ein Fehler wie dieser kommen:
* warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in SCRIPTNAME on line LINENUMBER

Der Fehler tritt immer auf, wenn in der php.ini die Stelle “allow_url_fopen” auf “Off” gestellt ist und die Url, die geöffnet werden soll, auf einen entfernten Rechner sich befindet. Wenn Ihr Zugriff auf die php.ini habt könnt Ihr “allow_url_fopen = On” in die Datei schreiben. Ersetzt am besten die alte Passage, sonst kann es zu Fehlern kommen.

Oder Ihr ersetzt die Funktion durch eine Zeitgemässere. Hier mal ein Beispielcode:
$file_content = file_get_contents("http://server.tld/datei.txt");

Ersetzt die Funktion durch diese:
$initial = curl_init();
curl_setopt($initial, CURLOPT_URL, "http://server.tld/datei.txt");
curl_setopt($initial, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($initial, CURLOPT_CONNECTTIMEOUT, 5);
$file_content = curl_exec($initial);
curl_close($initial);

Es gibt einiges an weiteren Variaben die man setzen kann. Schaut mal bei php.net vorbei.

preg_match und Leerzeichen

Ein kurzer Zwischenruf:
Wer gerne auf Leerzeichen bei preg_match Prüfen will, muss dann “[:space:]” in die Felder mit angeben. Das ganze würde dann so aussehen:preg_match("/^[0-9a-zßüäö.[:space:]-]+$/i",$Variable)

Damit wird nur auf das Alphabet und ein paar Umlaute geprüft. Als Sonderzeichen ist ., Leerzeichen und – erlaubt.

Erster Buchstaben jedes Wortes groß – ucwords #2

Vor knapp einen Monat hatte ich zum ersten mal über die Funktion ucwords() berichtet. Das ganze war auch ganz gut angekommen, aber leider geht es nicht überall :) . Ein Leser hat mir geschrieben, das er mit der Funktion leider nicht den gewünschten Effekt bei Strassennamen erhält wo ein “-” enthalten ist.

Sprich er macht aus “Siegmund-Freud-Straße” einfach “Siegmund-freud-straße”. Das ist aus der Sicht der Funktion absolut richtig, aber nicht aus der des Anwenders. Nach kurzen überlegen waren mir dann schon viele explode und foreach Varianten eingefallen und noch die Anzahl an “-” Zeichen zählen. Naja das ganze erschien mir dann viel zu kompliziert und ich dachte mir, das es doch etwas anderes geben muss. Danach war die Idee da, die Leerzeichen durch andere Zeichen zu ersetzten und so dann alles mehrfach durch zuarbeiten. Weiterlesen

IP Adresse auf Gültigkeit prüfen #2

So wie bereits im Artikel IP Adresse auf Gültigkeit prüfen der Besucher L3o in den Kommentaren geschrieben hat, gibt es eine einfachere Möglichkeit eine IP Adresse zu testen. Weiterlesen

IP Adresse auf Gültigkeit prüfen

Heute wollte ich mal eingegebene IP Adressen auf Ihre Gültigkeit prüfe. Das ist an sich gar nicht so schwer. Theoretisch sind da ja nur wenige Regeln zu beachten. Eine IP Adresse darf…

  • ..nur aus zahlen und Punkten bestehen
  • ..nur 3 Punkte haben
  • ..bei jeden “Block” maximal 255 drin stehen haben

Das war es auch schon. Einfache Regeln ohne großes tam tam. Das ganze wollte ich eigentlich mit regulären Ausdruck absuchen lassen, aber das scheint alles nicht so gut zu gehen wie ich es gerne hätte :) . Weiterlesen

Erster Buchstaben jedes Wortes groß – ucwords

Hallo,

ich mal wieder. Heute musste ich eine Datenbank mit komplett Groß geschriebenen Einträgen etwas formatieren :) . Ich wollte das ganze so haben, das jedes Wort der erste Buchstabe Groß geschrieben ist. “Das ist eigentlich nicht wirklich schwer” hatte ich mir gedacht. Im Grunde war auch fix die richtige PHP Funktion gefunden ( ucwords() ). Weiterlesen

“Preformance” der Script immer versteckt Anzeigen

Ich habe ab und zu auf wichtigen und lasten intensiven Seiten meistens eine Automatische und konstante Anzeige der wichtigsten Eckdaten. Dadurch kann ich ohne großen Aufwand ständig die Ladezeiten kontrollieren. Der Vorteil liegt klar auf der Hand. Wenn mal wieder ein Anruf kommt ala “Die Seite ist langsam” braucht man nur selber drauf surfen und braucht nicht erstmal sich mit dem Server zu verbinden.

Das ganze am besten in die Datei Packen, die überall geladen wird (index.php, config.php). Und vor allem: Nicht aus versehen 2 mal die Session starten mit session_start(); , weil sonst dieser Fehler kommt:

Warning: Cannot send session cookie – headers already sent

Darum erst kontrollieren und dann folgendes einbauen:

session_start();
function getmicrotime() {
list($msec, $sec) = explode(” “,microtime());
return ($msec + $sec);
}
if($_REQUEST["start_timing"]==”on”){
$_SESSION["get_time"]=”on”;
}
if($_REQUEST["start_timing"]==”off”){
$_SESSION["get_time"]=”off”;
}
if($_SESSION["get_time"]==”on”){
$time_start = getmicrotime();
}

Das am besten ganz oben in die Seite rein laden :) . Dadurch wird die microtime() geholt. Also die Zeit mit Millisekunden, den auf die kommt es oft an.

if($_SESSION["get_time"]==”on”){
$serverid=”SERVERNAME”;
$query=$_SERVER["QUERY_STRING"];
$scriptname=$_SERVER["SCRIPT_NAME"];
$script=$scriptname.”?”.$query;
$time_end = getmicrotime();
$endzeit=$time_end-$time_start;
echo”“;
}

Den Block dann ganz nach unten. Dort erscheint dann die Ausgabe.

Beim Seitenaufruf einfach dann beim nächsten mal index.php?start_timing=on mitgeben und dann könnt Ihr euch zu dem kritischen Script bewegen und müsst nur in den Quelltext gucken um dann unten die Ausgabe zu sehen.

Das ganze lässt sich auch stoppen mit mal index.php?start_timing=off, aber eigentlich ist das egal :) . Wenn die Session verloren geht dann hört die Ausgabe auch auf.

Array Ausgabe in schön

Wer von euch öfters mit Arrays arbeitet, wird die Funktion bestimmt zu schätzen wissen:

function print_array($Array)
{
if(!empty($Array)){
echo”<pre>”;
print_r($Array);
echo”</pre>”;
}
}

Im Grunde nicht kompliziertes und auch nicht was ich groß als Meilenstein in der Geschichte ansehe, aber es hat mir oft Arbeit erspart und gehört zu meinen Standard Funktionen