Upload
souridatta
View
1.090
Download
0
Tags:
Embed Size (px)
Citation preview
Souri Datta ([email protected])
PHP for hacks
What is PHP?• Server side language• Very easy to learn• Available on LAMP stack (Linux Apache Mysql
PHP)• Does not require any special tools. Create a
file with .php extension and you are done.
What we need to learn (for
hacks)?• Enough PHP to handle simple request• How to talk to backend data store using PHP• How to parse XML/JSON in PHP• How to generate JSON in PHP
Getting Started• You need a local server with PHP enabled.• XAMPP for windows and Mac OS• Linux has it by default
<?php $school="iit-b"; echo "Hello, World $school";?>
Create a file hello.php inside htdocs and open it in browser like this http://localhost/hello.php
Getting Started
demo1.php
Basics• PHP blocks start with <?php and end with ?> -• Every line of PHP has to end with a
semicolon ";”• Variables in PHP start with a $• You print out content to the document in PHP
with the echo command.• $school is variable and it can be printed out• You can jump in and out of PHP anywhere in
the document. So if you intersperse PHP with HTML blocks, that is totally fine. For example:
Mix Match
demo2.php
Displaying more complex data
• You can define arrays in PHP using the array() method$lampstack = array('Linux','Apache','MySQL','PHP');
• If you simply want to display a complex datatype like this in PHP for debugging you can use the print_r() command
$lampstack = array('Linux','Apache','MySQL','PHP');print_r($lampstack);
Arrays
demo4.php
Arrays
sizeof($array) - this will return the size of the array
demo5.php
Associative Arrays
<ul><?php$lampstack = array( 'Operating System' => 'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP');$length = sizeof($lampstack);$keys = array_keys($lampstack);for( $i = 0;$i < $length;$i++ ){ echo '<li>' . $keys[$i] . ':' . $lampstack[$keys[$i]] . '</li>';}?></ul>
Functions
<?phpfunction renderList($array){ if( sizeof($array) > 0 ){ echo '<ul>'; foreach( $array as $key => $item ){ echo '<li>' . $key . ':' . $item . '</li>'; } echo '</ul>'; }}$lampstack = array( 'Operating System' => 'Linux', 'Server' => 'Apache', 'Database' => 'MySQL', 'Language' => 'PHP');renderList($lampstack);?> demo6.php
Interacting with the web - URL parameters
<?php$name = 'Tom';
// if there is no language defined, switch to Englishif( !isset($_GET['language']) ){ $welcome = 'Oh, hello there, ';}if( $_GET['language'] == 'hindi' ){ $welcome = 'Namastae, ';}switch($_GET['font']){ case 'small': $size = 80; break; case 'medium': $size = 100; break; case 'large': $size = 120; break; default: $size = 100; break;}echo '<style>body{font-size:' . $size . '%;}</style>';echo '<h1>'.$welcome.$name.'</h1>';?>
demo7.php
Loading content from the web
<?php // define the URL to load $url = 'http://cricket.yahoo.com/player-profile/Sachin-Tendulkar_2962'; // start cURL $ch = curl_init(); // tell cURL what the URL is curl_setopt($ch, CURLOPT_URL, $url); // tell cURL that you want the data back from that URL curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // run cURL $output = curl_exec($ch); // end the cURL call (this also cleans up memory so it is // important) curl_close($ch); // display the output echo $output;?>
demo8.php
Parsing XML content• Demo
demo9.php
Parsing JSON content• Demo
demo9.php
Talking to Mysql db
Further Referencehttp://www.php.net/
http://developer.yahoo.comhttp://www.slideshare.net/souridatta
Nods.js• A javascript runtime environment• Javascript is used to write client side code, but
with node.js, server side code can be written• Runs over cmd line
Getting started• Download nods.js and install it– http://nodejs.org/
• You are ready to go!
Hello World
Create a file hello.js
From cmd line , run : node hello.js
Open in browser : http://localhost:8888/
Advantages• Event-driven asynchronous i/o
• Callbacks are attached to i/o– Avoids blocking
Further reading• http://nodejs.org/• http://www.nodebeginner.org/• http://code.google.com/p/v8/
Thank you!