Tag: Webseiten

Is My Website Down BugBlog Version

Vor einiger Zeit wurde auf Digital Inspiration (http://www.labnol.org /internet/ website-uptime-monitor/ 21060/) ein Sheet für Google Spreadsheet veröffentlicht um zu überwachen ob eine bestimmte Webseite online ist.

Das Skript, hinter dem Sheet, schreibt den Status, abhängig von der Geschwindigkeit des Triggers, kontinuierlich in das Sheet. Da die Sheets nicht unendlich sind, kommt es nach ca. 19500 Zeilen zu einer Exception.

Daneben gab es noch ein paar weitere Punkte, die ich angepasst habe. Nachfolgend das Skript, im Sheet müssen keine Anpassungen gemacht werden, da die selben Zellen verwendet werden.

[PHP]
/** Monitor your Site’s Uptime **/

/** By Amit Agarwal 26/03/2012 **/
/** http://labnol.org/?p=33232 **/

/** Extended by: DeBugger **/
/** http://www.BugBlog.de **/

function isMyBugBlogDown()
{
var url = SpreadsheetApp.getActiveSheet().getRange(“E3”).getValue();

if (!ScriptProperties.getProperty(“status”)) {
ScriptProperties.setProperty(“status”, 200);
}

var response, error;

try {
response = UrlFetchApp.fetch(url);
} catch(error)
{
insertData(error, -1, “Website down”, 1);
return;
}

var code = response.getResponseCode();

if (code == 200){
insertData(“Up”, code, “Website up”, 0);
} else {
insertData(response.getContent()[0], code, “Website down”, 1);
}
}

function insertData(error, code, msg, mail) {
if (ScriptProperties.getProperty(“status”) == code){
}

var sheet = SpreadsheetApp.getActiveSheet();
var email = sheet.getRange(“E5”).getValue();

/**
/* Sheet is not infinite
var row = sheet.getLastRow() + 1;
**/

var row = sheet.getLastRow();
var lastValue = sheet.getRange(row,3).getValue();

/**
A Warning, if need the data we should care about!
**/
if(row > 19000){
MailApp.sendEmail(email, “Table almost full: ” + row, “Table almost full: ” + row);
}

if(row > 19500){
sheet.deleteRows(8, row);
MailApp.sendEmail(email, “Table cleared! Rows deleted: ” + (row-8), “Table cleared! Rows deleted: ” + (row-8));
row = 8;
}

if(lastValue != code){
row = row + 1;
}

/**
Always Wintertime / Normaltime.
**/

sheet.getRange(row,1).setValue(Utilities.formatDate(new Date(), “GMT+1”, “dd.MM.yyyy HH:mm:ss”));
sheet.getRange(row,2).setValue(error);
sheet.getRange(row,3).setValue(code);

ScriptProperties.setProperty(“status”, code);

if(mail == 1){
MailApp.sendEmail(email, msg, error);
}
}
[/PHP]

PHP Stylesheet CSS

Wie bereits in den 5 Tipps für eine schnellere Webseite beschrieben sollte man soviel Code wie möglich in die CSS Datei auslagern. CSS Dateien haben, genauso wie HTML nur einen Nachteil, man kann keine Logik implementieren. In PHP ist dies jedoch möglich. Außerdem kann PHP so tun als sei es CSS.

[php]

[/php]

In HTML wird es wie eine CSS Datei eingebunden.

[html] [/html]

Manche Kunden möchten gerne das jede Kategorie eine andere Farbe hat. Bevor man jetzt anfängt 10 verschiedene Stylesheet Dateien anzulegen, wäre es einfacher jedes Design in ein anderen Ordner zu legen und diesen per GET zu übergeben.

[html] [/html]

Um das Stylesheet übersichtlich zu gestalten, sollte man wirklich nur den Dynamischen Teil in eine PHP CSS Datei auslagern. Die untere CSS Datei würde wie folgt aussehen:

[css]

/* NUR FUER FARBEN UND HINTERGRUENDE */
/* DER REST ALLES IN STYLESHEET.CSS */

/* KOPF */

#kopf {
background-image:url(kopf/header_start.jpg);
background-repeat:no-repeat;
height: 220px;
}
[/css]

In der Codevorschau ist dieses Beispiel sehr bunt. Wer jedoch solche Dateien mit VI bzw. VIM erstellt, wird jedoch enttäuscht werden, weil der Editor das Syntaxhighliting aufgrund der Dateiendung entscheidet. Dies kann man jedoch manuell auf CSS umschalten. Danach ist der PHP Code zwar schwarz, aber die Datei sollte auch hauptsächlich aus CSS bestehen.

Wer in seinem VIM-Menü verzweifelt nach CSS sucht, wird unter Cascading Style Sheets fündig.