Main /

PHP Schnippsel

PHP Schnippsel

/ HomePage / Computer / Software / Programmierung / Schnipsel

PHP-Schnipsel

1. if then else

 if (condition)
 {
   expression(s)
 }
 [ elseif (next condition) { ... } ]* 
 [ else { ... } ]1
  • ]* Darf beliebig oft vorkommen
  • ]1 Darf genau einmal vorkommen

2. Versionskompatibilität in der Parameterbehandlung

Folgende Zeilen erzeugen auch in älteren PHP-Verionen die $_GET und $_POST-Arrays

if (!isset($_POST)) $_POST = $GLOBALS['HTTP_POST_VARS'];
if (!isset($_GET))  $_GET  = $GLOBALS['HTTP_GET_VARS'];

3. Verteilte Directories

Ein Problem aus dem Leben gegriffen...
Man hat ein Apache(2) unter Windows laufen, zudem ein PHP und möchte ein Directory anzeigen lassen, was mit folgendem PHP Code ganz einfach ist.

<html><body>
<?php

// $PATH_INFO ist erst ab PHP5 vorhanden, die folgende Zeile bildet die Variable in älteren Versionen nach:
$PATH_INFO= substr($_SERVER['REQUEST_URI'],strlen($_SERVER['SCRIPT_NAME']), strlen($_SERVER['REQUEST_URI']));

if(isset($PATH_INFO)) {
   $vardata = explode('/', $PATH_INFO);
   $num_param = count($vardata);
   if($num_param % 2 == 0) {
      $vardata[] = '';
      $num_param++;
   }
   for($i = 1; $i < $num_param; $i += 2) {
      $$vardata[$i] = $vardata[$i+1];
   }
}
echo '<pre>';
print_r ($vardata);
echo '</pre>';
?>
</body></html>

Wenn man nun test.php wie folgt aufruft:

http://www.meinetolledomain.de/test.php/Main/ComputerEmulation

erhält man als Ausgabe:

Array
(
[0] =>
[1] => test.php
[2] => Main
[3] => ComputerEmulation
[4] =>
)

Mehr dazu hier: http://www.zend.com/zend/spotlight/searchengine.php en

5. Excel-Dateien mit PHP erzeugen

Um eine Excel-Datei mit formatierungen zu erzeugen kann man HTML verwenden.

<?php
    header("Content-Type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=\"export.xls\"");
    echo '<table cellpadding="0" cellspacing="0" border="1">';
    echo '<tr><th>Spalte1</th><th>Spalte2</th></tr>';
    echo '<tr><td>wert1</td><td><b>Fett</b></td></tr>';
    echo '</table>';
?>

6. HTTP-Header manipulieren

Wenn man aus div. Gründen mal schnell den HTTP-Header manipulieren muß und grade kein CURL oder PHP-Frameworks wie z.B. Zend oder auch Symphony hat bzw. nutzen darf kann man sich der PEAR-Klasse HTTP_Request bedienen.
Ist sowieso bei so gut wie allen PHP-Installationen mit dabei:

<?php
      require_once 'HTTP/Request.php';    
      $url = "http://www.dawillichhin.com/search.xml?searchQuery=".$looking_for;

      $reqObj = new HTTP_Request($url);
      $reqObj->setHttpVer("1.0");
      $reqObj->addHeader('User-Agent' , 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; de; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.');
      $reqObj->addHeader("Accept-language" , "de-de");
      $reqObj->addHeader("Accept-Charset" , "utf-8");
      $reqObj->addHeader("Content Encoding" , "ISO-8859-1");          // für lokale M$-OS, sonst gem. encoding="
      $reqObj->addHeader("Referer" , "http://dawillichhin.com/");     // Server soll denken wir wären einem Link gefolgt

      $reqObj->sendRequest();
      $page_content = $reqObj->getResponseBody();

      echo $page_content;
?>                                

Wozu eigentlich der Aufwand?
Ganz einfach: einige Server schicken statt XML ein Mischmasch aus HTML anhand der HTTP-USER-AGENT-Kennung. Um das zu umgehen kann man sich kurzfristig als einen bestimmten Browser ausgeben um reines XML zu erhalten welches dann ganz bequem mit SimpleXML zerlegt werden kann.

7. Grafik, Bilder ausschneiden

siehe auch

Frische Änderungen | Menü editieren
zuletzt geändert am 23.10.2008 14:07 Uhr von Lars
Edit Page | Page History