Viikkotehtävä 5 ja jatkoa sessioille
- Luentotaltiointi
- viikkotehtävien malliratkaisut
- auto_prepend_file ja auto_append_file
- Edelleenohjaus
- Mediatyyppi
- Kielivalinta
- Kuvat
Luennolla käydään läpi edellisviikon viikkotehtävä ja hieman lisäasiaa sessioista
Luentotaltiointi
- sovellukset12.mp3 14M
- sovellukset12.wmv 31M
- sovellukset12_xvid.avi 97M
viikkotehtävien malliratkaisut
auto_prepend_file ja auto_append_file
php_value auto_prepend_file alku.php
php_value auto_append_file loppu.php
Edelleenohjaus
header("Location: http://www.foo.example/");
Annetun osoitteen pitää olla absoluuttinen
Sessiotunniste ei automaattisesti kulje edelleenohjauksen mukana muuten kuin evästeiden avulla
Mediatyyppi
PHP:lla voidaan tuottaa mitä tahansa mediatyyppiä kuten esim. tekstiä:
header('Content-type: text/plain');
Hyvä mediatyyppi sivustoa testatessa on application/xhtml+xml. Firefox ja Opera antavat tällä mediatyypillä heti virheilmoituksen jos sivun xhtml-koodi ei ole hyvin muodostettua.
header('Content-type: application/xhtml+xml');
Mediatyypin voi myös valita sen mukaan mitä selain osaa:
if ( stristr( $_SERVER['HTTP_ACCEPT'], "application/xhtml+xml") ) {
header('Content-type: application/xhtml+xml');
}
PHP:lla voi palauttaa/tuottaa esim. kuvia:
header('Content-type: image/png');
$data = '';
$fr = fopen('ball1.png', 'r');
while ( !feof($fr) ) {
$data .= fread($fr, 1024);
}
fclose($fr);
print $data;
Kielivalinta
PHP:n yhteydessä voi toteuttaa apachen normaalia automaattista kielenvalintaa tai ohjelmoida saman itse parsimalla selaimen palauttama lista halutuista kielistä.
- Content Negotiation: why it is useful, and how to make it work
- Language Negotiation Notes
- Apache Content Negotiation
- PHP Predefined variables
Kuvat
PHP:lla voi tuottaa myös vaikkapa kaavioita
header("Content-type: image/png");
$width = 350;
$height = 360;
$im = ImageCreateTrueColor($width, $height);
$red = ImageColorAllocate($im, 255, 0, 0);
ImageFillToBorder($im, 0, 0, $red, $red);
ImagePNG($im);
ImageDestroy($im);

