HackU PHP and Node.js

Preview:

Citation preview

Souri Datta (sourind@yahoo-inc.com)

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!

Recommended