Erst habe ich ja noch gedacht, es gibt bestimmt irgendeine Option mit dem der tar Befehl das von sich aus macht, aber ich habe nichts gefunden. Das Ergebnis ist folgendes kleine Shell Script.
#!/bin/sh
# set -x
for i in `find . -name "*.tgz" -print`
do
cd `dirname $i`
tar -xvzf `basename $i`
cd -
done
Total easy und schnell gemacht. Während ich das Skript gerade laufen lasse habe ich noch Zeit einen kleinen Artikel im Blog zu schreiben und dann mache ich mich wieder daran, weiter zu entwickeln. Was es ist wird noch nicht verraten
No related posts.
]]>1. Aus einem String nur die Zahlen ausfiltern
$line = preg_replace(‘/[^0-9]/’, ”, $line);
Alle Zeichen die nicht 0-9 sind, werden aus dem String entfernt.
Das ganze geht auch mit Hexadezimalzahlen:
$line = preg_replace(‘/[^0-9abcdefABCDEF]/’, ”, $line);
2. Alle Zeichen durch ein “-” ersetzen, ausser Buchstaben und Zahlen
$string = preg_replace(‘/[^a-zA-Z0-9]/’, ‘-’, $string);
* Auchtung: Umlaute werden hier nicht berücksichtigt
3. Umlaute umwandeln. Diesen Schritt kann man gut mit Schritt 2 kombinieren.
$p[0] = ‘/ä/’;
$p[1] = ‘/Ä/’;
$p[2] = ‘/ö/’;
$p[3] = ‘/Ö/’;
$p[4] = ‘/ü/’;
$p[5] = ‘/Ü/’;
$p[6] = ‘/ß/’;
$r[0] = “ae”;
$r[1] = “AE”;
$r[2] = “oe”;
$r[3] = “OE”;
$r[4] = “ue”;
$r[5] = “UE”;
$r[6] = “ss”;
$string= preg_replace($p, $r, $string);
Jetzt sind alle Umlaute durch entsprechende Kombinationen aus ae oe ue ersetzt worden. Dabei wird auch zwischen Groß- und kleinbuchstaben unterschieden.
Related posts:
]]># date “+%s”
1287157252
geht das ganz einfach. Um das Datum dann in einem Shell Skript in eine Variable zu komieren kann man einfach die folgende Zeile in das Shell Skript kopieren.
DATE=`date “+%s”`
Related posts:
]]>postsuper -d ALL
kann man alle Einträge der Mailqueue auf einmal löschen. Das ist manchmal genz sinnvoll. Z.B. wenn man auf einem Testsystem die Mailqueue aufräumen möchte oder ein Hacker sich in das System eingeschlichen hat und den Server zum Versenden von Mails missbraucht .
No related posts.
]]>Alt + 5 = [
Alt + 6 = ]
Alt + 7 = |
Alt + 8 = {
Alt + 9 = }
Related posts:
]]><?
/* Permanente Weiterleitung mit einen HTTP 301 Code */
$url = “http://xn--sms-sprche-geb.org/”;
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: ” . $url);
?>
Für denjenigen, der mehr Details über die HTTP Statuscodes erfahren möchte, kann ich auf jeden Fall mal die Seite unter http://de.wikipedia.org/wiki/HTTP-Statuscode empfehlen.
Der 301 Status-Code ist einer aus der Gruppe der 3XX Umleitungen. 301 hat den Namen “Moved Permanently”, was bedeutet, dass die angeforderte URL ab sofort unter der im „Location“-Header-Feld angegebenen Adresse zu finden ist.
Related posts:
]]>Die Folgende Liste der ISO 3166-1 Ländercodes kann unter ISO 3166-1.xml heruntergeladen werden. Die Verarbeitung der XML Datei kann mit einem sehr simplen PHP Skript durchgeführt werden.
Ich habe schon mal eine HTML Select Box mit allen Ländern fertig gebaut und zum Download zur Verfügung gestellt. Die Datei enthält alle ISO 3166-1 Ländercodes eingebettet in eine HTML-Select Box. Vorausgewählt ist Deutschland.
<? $file = "iso_3166-1.xml"; $myobject = simplexml_load_file ($file); $myarray = object2array($myobject); foreach ($myarray["ISO_3166-1_Entry"] as $country) { $code = $country["ISO_3166-1_Country_name"]; $name = $country["ISO_3166-1_Alpha-2_Code_element"]; // Do something with code and name } function object2array($object) { $return = NULL; if(is_array($object)) { foreach($object as $key => $value) $return[$key] = object2array($value); } else { $var = get_object_vars($object); if($var) { foreach($var as $key => $value) $return[$key] = object2array($value); } else { return strval($object); // strval and everything is fine } } return $return; } ?>
AFGHANISTAN | AF |
ALBANIA | AL |
ALGERIA | DZ |
AMERICAN SAMOA | AS |
ANDORRA | AD |
ANGOLA | AO |
ANGUILLA | AI |
ANTARCTICA | AQ |
ANTIGUA AND BARBUDA | AG |
ARGENTINA | AR |
ARMENIA | AM |
ARUBA | AW |
AUSTRALIA | AU |
AUSTRIA | AT |
AZERBAIJAN | AZ |
BAHAMAS | BS |
BAHRAIN | BH |
BANGLADESH | BD |
BARBADOS | BB |
BELARUS | BY |
BELGIUM | BE |
BELIZE | BZ |
BENIN | BJ |
BERMUDA | BM |
BHUTAN | BT |
BOLIVIA | BO |
BOSNIA AND HERZEGOVINA | BA |
BOTSWANA | BW |
BOUVET ISLAND | BV |
BRAZIL | BR |
BRITISH INDIAN OCEAN TERRITORY | IO |
BRUNEI DARUSSALAM | BN |
BULGARIA | BG |
BURKINA FASO | BF |
BURUNDI | BI |
CAMBODIA | KH |
CAMEROON | CM |
CANADA | CA |
CAPE VERDE | CV |
CAYMAN ISLANDS | KY |
CENTRAL AFRICAN REPUBLIC | CF |
CHAD | TD |
CHILE | CL |
CHINA | CN |
CHRISTMAS ISLAND | CX |
COCOS (KEELING) ISLANDS | CC |
COLOMBIA | CO |
COMOROS | KM |
CONGO | CG |
CONGO, THE DEMOCRATIC REPUBLIC OF THE | CD |
COOK ISLANDS | CK |
COSTA RICA | CR |
COTE D’IVOIRE | CI |
CROATIA | HR |
CUBA | CU |
CYPRUS | CY |
CZECH REPUBLIC | CZ |
DENMARK | DK |
DJIBOUTI | DJ |
DOMINICA | DM |
DOMINICAN REPUBLIC | DO |
ECUADOR | EC |
EGYPT | EG |
EL SALVADOR | SV |
EQUATORIAL GUINEA | GQ |
ERITREA | ER |
ESTONIA | EE |
ETHIOPIA | ET |
FALKLAND ISLANDS (MALVINAS) | FK |
FAROE ISLANDS | FO |
FIJI | FJ |
FINLAND | FI |
FRANCE | FR |
FRENCH GUIANA | GF |
FRENCH POLYNESIA | PF |
FRENCH SOUTHERN TERRITORIES | TF |
GABON | GA |
GAMBIA | GM |
GEORGIA | GE |
GERMANY | DE |
GHANA | GH |
GIBRALTAR | GI |
GREECE | GR |
GREENLAND | GL |
GRENADA | GD |
GUADELOUPE | GP |
GUAM | GU |
GUATEMALA | GT |
GUERNSEY | GG |
GUINEA | GN |
GUINEA-BISSAU | GW |
GUYANA | GY |
HAITI | HT |
HEARD ISLAND AND MCDONALD ISLANDS | HM |
HOLY SEE (VATICAN CITY STATE) | VA |
HONDURAS | HN |
HONG KONG | HK |
HUNGARY | HU |
ICELAND | IS |
INDIA | IN |
INDONESIA | ID |
IRAN, ISLAMIC REPUBLIC OF | IR |
IRAQ | IQ |
IRELAND | IE |
ISLE OF MAN | IM |
ISRAEL | IL |
ITALY | IT |
JAMAICA | JM |
JAPAN | JP |
JERSEY | JE |
JORDAN | JO |
KAZAKHSTAN | KZ |
KENYA | KE |
KIRIBATI | KI |
KOREA, DEMOCRATIC PEOPLE’S REPUBLIC OF | KP |
KOREA, REPUBLIC OF | KR |
KUWAIT | KW |
KYRGYZSTAN | KG |
LAO PEOPLE’S DEMOCRATIC REPUBLIC | LA |
LATVIA | LV |
LEBANON | LB |
LESOTHO | LS |
LIBERIA | LR |
LIBYAN ARAB JAMAHIRIYA | LY |
LIECHTENSTEIN | LI |
LITHUANIA | LT |
LUXEMBOURG | LU |
MACAO | MO |
MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF | MK |
MADAGASCAR | MG |
MALAWI | MW |
MALAYSIA | MY |
MALDIVES | MV |
MALI | ML |
MALTA | MT |
MARSHALL ISLANDS | MH |
MARTINIQUE | MQ |
MAURITANIA | MR |
MAURITIUS | MU |
MAYOTTE | YT |
MEXICO | MX |
MICRONESIA, FEDERATED STATES OF | FM |
MOLDOVA, REPUBLIC OF | MD |
MONACO | MC |
MONGOLIA | MN |
MONTENEGRO | ME |
MONTSERRAT | MS |
MOROCCO | MA |
MOZAMBIQUE | MZ |
MYANMAR | MM |
NAMIBIA | NA |
NAURU | NR |
NEPAL | NP |
NETHERLANDS | NL |
NETHERLANDS ANTILLES | AN |
NEW CALEDONIA | NC |
NEW ZEALAND | NZ |
NICARAGUA | NI |
NIGER | NE |
NIGERIA | NG |
NIUE | NU |
NORFOLK ISLAND | NF |
NORTHERN MARIANA ISLANDS | MP |
NORWAY | NO |
OMAN | OM |
PAKISTAN | PK |
PALAU | PW |
PALESTINIAN TERRITORY, OCCUPIED | PS |
PANAMA | PA |
PAPUA NEW GUINEA | PG |
PARAGUAY | PY |
PERU | PE |
PHILIPPINES | PH |
PITCAIRN | PN |
POLAND | PL |
PORTUGAL | PT |
PUERTO RICO | PR |
QATAR | QA |
REUNION | RE |
ROMANIA | RO |
RUSSIAN FEDERATION | RU |
RWANDA | RW |
SAINT HELENA | SH |
SAINT KITTS AND NEVIS | KN |
SAINT LUCIA | LC |
SAINT PIERRE AND MIQUELON | PM |
SAINT VINCENT AND THE GRENADINES | VC |
SAMOA | WS |
SAN MARINO | SM |
SAO TOME AND PRINCIPE | ST |
SAUDI ARABIA | SA |
SENEGAL | SN |
SERBIA | RS |
SEYCHELLES | SC |
SIERRA LEONE | SL |
SINGAPORE | SG |
SLOVAKIA | SK |
SLOVENIA | SI |
SOLOMON ISLANDS | SB |
SOMALIA | SO |
SOUTH AFRICA | ZA |
SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS | GS |
SPAIN | ES |
SRI LANKA | LK |
SUDAN | SD |
SURINAME | SR |
SVALBARD AND JAN MAYEN | SJ |
SWAZILAND | SZ |
SWEDEN | SE |
SWITZERLAND | CH |
SYRIAN ARAB REPUBLIC | SY |
TAIWAN, PROVINCE OF CHINA | TW |
TAJIKISTAN | TJ |
TANZANIA, UNITED REPUBLIC OF | TZ |
THAILAND | TH |
TIMOR-LESTE | TL |
TOGO | TG |
TOKELAU | TK |
TONGA | TO |
TRINIDAD AND TOBAGO | TT |
TUNISIA | TN |
TURKEY | TR |
TURKMENISTAN | TM |
TURKS AND CAICOS ISLANDS | TC |
TUVALU | TV |
UGANDA | UG |
UKRAINE | UA |
UNITED ARAB EMIRATES | AE |
UNITED KINGDOM | GB |
UNITED STATES | US |
UNITED STATES MINOR OUTLYING ISLANDS | UM |
URUGUAY | UY |
UZBEKISTAN | UZ |
VANUATU | VU |
VENEZUELA | VE |
VIET NAM | VN |
VIRGIN ISLANDS, BRITISH | VG |
VIRGIN ISLANDS, U.S. | VI |
WALLIS AND FUTUNA | WF |
WESTERN SAHARA | EH |
YEMEN | YE |
ZAMBIA | ZM |
ZIMBABWE | ZW |
Related posts:
]]>URL Encoding ist mit den Bordmitteln von PHP relativ einfach umzusetzen. Es reicht der richtige Einsatz der Methoden rawurlencode, rawurldecode, urlencode und urldecode. Trotzdem möchte ich hier ein wenig die Hintergründe beleuchten.
Am Anfang stand die “RFC 1738″ (Uniform Resource Locators (URL) specification). In diesem Dokument ist der Korrekte Aufbau eines URLs beschrieben. Z.B. dass in Ordnern und Dateinamen statt einem Leerzeichen ein “ ″ im URL stehen muss.
In HTML Dokumenten müssen die Attribute der folgenden HTML-Tags nach RFC 1738 codiert werden. (A, APPLET, AREA, BASE, BGSOUND, BODY, EMBED, FORM, FRAME, IFRAME, ILAYER, IMG, OBJECT, SCRIPT, SOUND)
Die RFC 1738 Spezifikation sieht eine Kodierung aller Zeichen mit Ausnahme von 0-9, a-z, A-Z und “$-_.+!*’() vor. Alle anderen Zeichen sind als “Reservierte Zeichen” definiert und müssen daher bei der Verwendung mit einer der PHP Methoden (rawurlencode, urlencode) umgewandelt werden.
Beim Umwandeln von Zeichen in einem URL werden die ungültigen Sonderzeichen einfach in ihren Hex Code aufgelöst und dann mit einem % Zeichen versehen. Im Falle eines Leerzeichens währe es ein “ ″. Das hört sich erst mal einfach an, aber eine wichtige Information habe ich bisher noch unterschlagen. In URLs ist es leider so, dass die Methode zum codieren und decodieren abhängig davon ist an welcher Stelle im URL man sich befindet. Beispiel:
Aus dem URL http://www.testserver.de/mein verzeichnis/meine datei.php?name=Michael Jentsch wird nach einer erfolgreichen Kodierung der URL http://www.testserver.de/mein verzeichnis/meine datei.php?name=Michael+Jentsch
Auffällig hierbei ist das + Zeichen statt dem “ ″ zwischen Michael und Jentsch. Genaugenommen könnte man hier auch ein einfügen, aber ein Browser würde hier immer ein + Zeichen verwenden. Um dies nachahmen zu können muss man die beiden Methoden rawurlencode und urlencode verwenden.
Die Methode urlencode halt hier nicht an das im RFC 1738 beschriebenen Verfahren.
So könnte beispielsweise der PHP Code aussehen um einen URL zu codieren.
$part1 = “www.testserver.de/mein verzeichnis/meine datei.php”;
$part2 = “name=Michael Jentsch”;
$url = “http://” .rawurlencode ($part1) . “?” . urlencode($part2);
rawurlencode
Verfügbar in PHP 3, PHP 4 und PHP 5
Beschreibung:
string rawurlencode ( string str ) // URL-Kodierung nach RFC 1738
Diese Methode realisiert die Kodierung nach RFC 1738.
Link: http://php.net/manual/de/function.rawurlencode.php
rawurldecode
Verfügbar in PHP 3, PHP 4 und PHP 5
Beschreibung:
string rawurldecode ( string str ) // URL-Dekodierung nach RFC 1738
Diese Methode realisiert die Dekodierung nach RFC 1738.
Link: http://php.net/manual/de/function.rawurldecode.php
urlencode
Verfügbar in PHP 3, PHP 4 , PHP 5
Beschreibung:
string urlencode ( string str ) // URL Kodierung von Strings.
Diese Methode entspricht der Methode rawurlencode mit Ausnahme eines Zeichens. Das Leerzeichen wird nicht nach umgewandelt, sondern in ein + Zeichen. Diese Methode entspricht der Kodierung wie sie vom Browser verwendet wird, wenn Daten in einem Formular gesendet werden und mit application/x-www-form-urlencoded kodiert werden.
urldecode
Verfügbar in PHP 3, PHP 4 und PHP 5
Beschreibung:
string urldecode ( string str ) // URL Dekodierung von Strings.
Dekodiert jede %## Kodierung eines Strings und das Plus Zeichen. Der dekodierte String wird als Return Wert zurückgegeben.
Related posts:
]]>Bei der Entwicklung meines Portals RPMGuru.com bin ich auf ein Problem gestoßen, vor dem ich vor ein paar Jahren schon einmal stand. Damals wie heute brauchte ich eine Funktion mit der Mann ein Array in einer Datei speichern und diese Datei später wieder in ein Array laden konnte. Ich war mir sicher, diese Funktion ist im PHP Standard enthalten. Nach einer Kurzen Suche auf http://www.php.net/ und bei http://www.google.de/ mit folgenden Suchbegriffen stellte ich fest dass diese Funktionen wohl sehr gut versteckt sind. Also blieb meine Suche nach den Mustern “php array speichern”, “php array_save”, “php array file”, “php array save”, “php array2file” und “php array2file file2array” unbeantwortet. Dieses Problem hat auch einen anderen Entwickler dazu bewogen die Funktionen SaveArrayToFile und LoadArrayFromFile zu schreiben.
Folgendes ist unter http://www.planet-source-code.com/... zu lesen: Zitat: name: A way to save arrays recursive into a file description:This little code snipplet can save and reload arrays recursive into/from a file. You can use this if you want to add a guestbook to your page and there's no MySql database left, for example. by: FirebirdDE (http://www.pberndt.com/)
Glücklicherweise schreibt der aufmerksame Leser “Christian Mallette (http://www.ezscripts.net/)” dazu einen kurzen aber absolut genialen Kommentar:
Zitat: Not that your way is bad, but it would be easier if you just use: Serialize($array) http://de2.php.net/manual/en/function.serialize.php Unserialize($array) http://de2.php.net/manual/en/function.unserialize.php
In dem Moment habe ich die Erleuchtung und die Entwicklung von RPMGuru.com kann weiter gehen . Ein paar Tage später habe ich dann die Idee zu dieser Kurzgeschichte die hoffentlich anderen Entwicklern das Suchen ein wenig erleichtert.
Michael
Related posts:
]]>echo -n
verhindern. So kann man in der Zeile z.B. noch weitere Ausgaben hinzufügen.
Auszug aus dem Manual:
-n do not output the trailing newline
Related posts:
]]>