lis651 lecture 1 php basics thomas krichel 2005-03-19
TRANSCRIPT
![Page 1: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/1.jpg)
LIS651 lecture 1
PHP basics
Thomas Krichel
2005-03-19
![Page 2: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/2.jpg)
today
• we work with– text– numbers– flow control– array
• and then we reorganize the shop
![Page 3: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/3.jpg)
string
• a piece of text in PHP is called a string. • A string is often surrounded by single quotes.
print 'I want beer';
$want='beer';
print 'I want $want';
// prints: I want $want
• If you want to use the values of variables, use double quotesprint "I want $want";
// prints: I want beer
![Page 4: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/4.jpg)
single and double quotes
• You can use single quotes to quote double quotesprint 'She wrote: "I want beer." and sighed.';
// prints: She wrote: "I want beer." and sighed.
• and vice versaprint "She wrote: 'I want beer.' and sighed";
// prints: She wrote: 'I want beer.' and sighed.
• Sometimes it is not obvious when to put single quotes, double quotes, and when to leave them out. If one thing does not work, try something else.
![Page 5: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/5.jpg)
the backslash escape
• The backslash is used to quote characters in a that otherwise are special.print 'Don\'t give me bad beer!';
$kind='bock';
$beer='Festbock'
print "<p class=\"$kind\">$beer</p>";
// prints: <p class="bock">Festbock</p>
• The backslash itself is quoted as \\– print "a \\ against beer consumption";– // prints: a \ against beer consumption
![Page 6: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/6.jpg)
backslash in double quoted chars
• \n makes the newline character• \r make the carriage return (no use in Unix)• \t makes the tab (seldomly used in
HTML)• \$ makes the dollar (used in the shop).
– $amount='1.50';– print "you owe \$$amount per bottle.";– // prints: you owe $1.50 per bottle.
If the backslash was not there $ would be considered to be a variable.
![Page 7: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/7.jpg)
trim()• trim() removes the whitespace at the beginning
and the end of the string. It returns the transformed string$input " 5 ";
$output=trim($input);
print "|$input|";
// prints: |5|
• whitespace is any of the following characters– the blank character– the newline– the carriage return– the tabulation character
![Page 8: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/8.jpg)
strlen()
• strlen() returns the length of the string$zip=trim($_POST['zipcode']);
$zip_length=strlen($zip);
print $zip_length;
// hopefully, prints 5
![Page 9: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/9.jpg)
strtolower() and friends• strtolower() makes lower case
$up='BEER'
$low=strtolower($up);
print $low;
// prints: beer
• strtoupper() makes upper caseprint strtoupper('beer');
// prints: BEER
• ucwords() capitalizes every word$name="grossWald bier";
print ucwords($name);
// prints: GrossWald Bier
![Page 10: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/10.jpg)
substr• substr(string,start,amount) extracts parts of a
string. string is the string to extract from. start is the position to start extracting from. 0 means the beginning of string. If start is negative, it counts from the end. amount is how much to extract.$blabla="To keep a long story short, I have a hangover.";
$blah=substr($blabla,0,27);
print "$blah...";
// prints: To keep a long story short...
print substr($blabla,-18,18);
// prints: I have a hangover.
![Page 11: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/11.jpg)
str_replace
• str_replace(string,substring,replace) a substring. string is the string, substring is the substring, replace is the replacement.$html='my <span class="myclass">Bruch</span>';
$new_html=str_replace($html,'myclass','beer');
print $new_html;
// prints: my <span class="beer">Bruch</span>
![Page 12: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/12.jpg)
sprintf()
• sprintf(format,string) returns string formatted according to format format.
• format is a special string. There are many formating options. They can be complicated.
• We do not study this further, but there is a useful example.– $third=1/3;– print $third;– // prints: 0.333333333333– print sprintf("%.2f",$third);– // prints: 0.33
![Page 13: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/13.jpg)
strip_tags()
• strip_tags() removes HTML tags$input="<b>But</b>weiser";
print strip_tags($input); // prints: Butweiser
$in="<a href=http://porn.com><img src=http://porn.com/ad.gif/></a>";
print strip_tags($in) // prints nothing, hurray!
![Page 14: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/14.jpg)
htmlentities()
• htmlentities() makes HTML entities out of special chars in HTML. <,>,&, and " are transformed$in="What does the <div> tag do?";
print htmlentities($in);
// prints: What does the <div> tag do?
![Page 15: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/15.jpg)
addslashes()
• if a variable read from a form, say, for example a user name Antoine d'Amstel, contains a single or double quote, this can be very problematic in certain later treatments. Use addslashes() to add slashes to user input that may contain slashes.
• stripslashes() does the opposite.
![Page 16: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/16.jpg)
regular expressions
• Regular expressions are the most powerful string manipulation tools known to man.
• They are the cornerstone of digital library work.• I hope to cover some of them later. • For now, just know that they exist.
• Now we turn to numbers.
![Page 17: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/17.jpg)
numbers• Numbers are set without the use of quotes.• You can +, -, * and / for the the basic calculations.• There also is the modulus operator %. It gives the
reminder of the division of the first number by the secondprint 10 % 7;
// prints 3
• Use parenthesis for complicated calculations$pack=2 * (10 % 7);
print "a $pack pack";
// prints: a 6 pack
![Page 18: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/18.jpg)
other number functions
• abs() calculates the absolute valueprint abs(-3) // prints: 3
print abs(3) // prints: 3
• number_format() formats numbers. When you want two digits only, use as follows– $number=1234,5678– print number_format($number,2);– // prints 1234,56
Details at http://us2.php.net/number_format
![Page 19: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/19.jpg)
geeky increment/decrement
• ++ is an operator that adds one. The value of the resulting expression depends on the position of the operator$a=4;
print ++$a; // prints: 5
print $a; // prints: 5
$b=4;
print $b++; // prints 4
print $b // prints 5
• -- works in the same way
![Page 20: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/20.jpg)
variable names• Variable name must start with a letter or
underscore. They can contain letters, digits and underscores. The following are examples of illegal names– $2drunk– $bottle-content– $brewer@grosswald
• Variable names are case sensitive. I use lowercase only and add underscores in long names.
• It is good to give variables meaningful names.
![Page 21: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/21.jpg)
concatenation
• This is done with the . operator.$cost=5.23;
$message='This costs ' . $cost;
print $message;
// prints: This costs 5.23
• PHP sees that 5.23 is a number but will treat it as a string for this purpose.
![Page 22: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/22.jpg)
geeky combined operators
• There are some combined operators that change a value and set it to the new one. For example – $a+=$b ;
• is the same as – $a=$a+$b;
• Same effect for -=, *=, /=, %=, and .=– $a="I want ";– $b="Balitka 8";– $a.=$b;– echo $a; // prints: "I want Baltika 8"
![Page 23: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/23.jpg)
Boolean value• Every expression in PHP has a Boolean value. • It is either 'true' or 'false'.• All strings are true except
– the empty string– the string "0"
• All number are true except– 0– 0.0
• example$a=5-4-1; // $a is false
![Page 24: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/24.jpg)
expression• An expression is something you write down. • Expressions that are evaluated in Boolean often
use comparison operators.$beer == "grosswald";
// checks for equality
• note difference from $beer="grosswald"; // this is always true
• Other comparisons are< smaller than <= smaller or equal than
> larger than >= larger or equal than
![Page 25: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/25.jpg)
if()
• if() evaluates an expression and if true, executes a block of code surrounded by curly brackets.if($drunk) {
print "dont\'t drive!\n";
}
• Note you don't need to indent the block as done above, but the way Thomas has done it there is pretty much standard, so do it in the same way.
![Page 26: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/26.jpg)
if() and else
• if you have an if() you can add an else block of code to execute when the condition is falseif($sober) {
print "you can drive\n";
}
else {
print "check if you are fit to drive\n";
}
![Page 27: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/27.jpg)
if and elseif• You can build chain of conditions
if($pints_drunk==0) {
print "You are ok to drive\n";
}
elseif($pints_drunk<3) {
print "Don't use the car, get on your bike\n";
}
elseif($pints_drunk<=6) {
print "Take a cab home\n";
}
else { print "Call the local hospital!\n";
}
![Page 28: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/28.jpg)
logical operators
• 'and' is logical AND. 'or' is logical OR.if(($brand=='Budweiser') or ($brand="Sam Adams")) {
echo "Commiserations for buying a lousy beer";
} # where is the mistake in this piece of code?
• These can be combined. Use parenthesis if((($pints) > 4 and ($vehicle=='car')) or (($pints > 6) and
($vehicle=='bicycle'))) {
print "order a cab!"
}
• 'not' is Boolean not.
![Page 29: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/29.jpg)
variable types
• Variables in PHP have types. Common types includeis_numeric()
is_string()
is_int()
is_float()
• They all return a Boolean value.• They can be used to check the nature of a
variable.
![Page 30: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/30.jpg)
while()
• while() { } executes a piece of code while the condition is true$count=0;
while($count < 100) {
print "Пиво без водки -- деньги на ветер!<br/>";
$count=$count+1; # don't forget to increment $count!
}
![Page 31: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/31.jpg)
for() loops
• for() takes the following form, by example<div class="quiz_question">How many cans are there in a six
pack?</div><div>Answer:<select name="answer">
<?php
// initial condition ; terminal check ; instruction at the end of loop
for($count=0; $count <=10; $count=$count+1) {
# note the semicolon above, it is a weird thing!
print "<option value=\"$count\"/>\n";
}
?>
</select></div>
![Page 32: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/32.jpg)
Arrays
• The variables we have looked at up until now are scalars. They can only contain one piece of data.
• Arrays are variables that can contain one that one piece of data. – For example, a six pack in conveniently represented as
an array of cans of beer.– For another example, a class is a group of people,
each having a name, a social security number, etc.
![Page 33: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/33.jpg)
numeric arrays• An numeric array has key value pairs where the
keys are numbers.$good_beers[0]="Baltika 8";
$good_beers[1]="Bruch Festbock";
• or as follows$lousy_beers=array("Miller Lite", "Sam Adams",
"Budweiser");
print $lousy_beers[0]; // prints: Miller Lite
print $lousy_beers[2]; // prints: Budweiser
![Page 34: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/34.jpg)
string arrays
• Sometimes you need data structured by a string. For example for a price list. $price['Grosswald Export']=1.45;
$price['Bruch Festbock']=1.74;
// the array $price has strings as keys
• An equivalent way to declare this is $price=array('Grosswald Export' => 1.45, 'Bruch
Festbock' => 1.74);
![Page 35: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/35.jpg)
count()
• count() returns the size of an array$price['Grosswald Export']=1.45;
$price['Bruch Festbock']=1.74;
$product_number=count($price);
print "We have $product_number products for you today.";
// prints: We have 2 products for you today.
![Page 36: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/36.jpg)
counting in numeric arrays
• For numeric arrays, you can add members very simple without keeping track of number.$beers=("Karlsberg", "Bruch") ;
$beers[]="Budweiser";
// beer now has Karlberg, Bruch and Budweiser
![Page 37: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/37.jpg)
looping through an array
• foreach() loops through an array. An example illustratesprint "<table caption=\"price list\">\n";
foreach ($price as $item => $euro_amount) {
print "<tr><td>$item</td>\n";
print "<td>€$euro_amount</td></tr>\n";
}
print "</table>";
• This prints the full price list. But it could also do the whole form. This is fabulous!
![Page 38: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/38.jpg)
the well-aligned price table
$l_r=array('left','right');
$count=0; // counter of elements printed
print "<table caption=\"price list\">\n";
foreach ($price as $item => $euro_amount) {
print "<tr><td align=\"$l_r[$count % 2]\"";
print "$item";
$count++;
print "</td>\n<td align=$l_r[$count % 2]\">
€$euro_amount</td></tr>\n";
![Page 39: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/39.jpg)
$count++;
}
print "</table>\n";
// This produces something like
// <table caption="price list">
// <tr><td align="left">Grosswald Export</td>
// <td align="right">€1.45</td></tr>
// <tr><td align="left">Bruch Festbock</td>
// <td align="right"'>€1.74</td></tr>
// </table>
![Page 40: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/40.jpg)
multiple arrays• Example
$products[0]['name']="Grosswald Pilsener";
$products[0]['price']=1.56;
$products[1]['name']="Grosswald Export";
$products[1]['price']=1.34;
$products[2]['name']="Bruch Landbier";
$products[2]['price']=1.22;
![Page 41: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/41.jpg)
restructure the shop• Instead of having two files, one with HTML, the
other with PHP, let us have just one. It's easier. • One cool thing to help that is cool is
$_SERVER[PHP_SELF]
It gives the file name of your script in the form. As you change your script file name, you do not need to change the name of the form submitted.
![Page 42: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/42.jpg)
define some variables$form_greet='<h1>Please place your order</h1>';
$form_top="<form action=\"$_SERVER[PHP_SELF]\" method=\"GET\"><table>";
$form_submit='</table><input type="submit" value="I order"/>';
$submit_check='<input type="hidden" name="submitted" value="1"/>';
$form_bottom='</form>';
$order_head="<h1>Results of your order</h1><div>\n";
•$order_bottom="Thank you for your order. We will ship when we get your check. Prosit!\n</div>";
![Page 43: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/43.jpg)
printing results if($_GET['submitted']) {
$total_euro=0; print $order_head;
foreach($_GET as $number => $amount) {
if($amount > 0 and $products[$number]) {
$pay=$amount*$products[$number][price];
print "$amount bottles of ";
print $products[$number][name];
print " is €$pay<br/>"; $total_euro+=$pay;
}
}
![Page 44: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/44.jpg)
print results, start form printing part
$total_dollar=$total_euro*$euro_rate;
$total_dollar=number_format($total_dollar,2);
print "The euro rate is $euro_rate<br/>\n";
print "Your bill is \$$total_dollar\n</div>";
}
else { // print the form
print $form_greet; print $form_top; $product_count=0;
foreach ($products as $prod) {
print "\n<tr><td>";
print $prod['name'];
print "</td><td>";
![Page 45: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/45.jpg)
final part, printing the form print "<input type=\"text\" name=\"";
print $product_count;
print "\" maxlength=\"2\" size=\"2\"/>";
print "</td><td>@€";
print $prod['price'];
print "</td></tr>\n";
$product_count++; // don't forget!
}
print $submit_check;
print $form_submit;
print $form_bottom;
}
![Page 46: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/46.jpg)
• We include a hidden element in the form to see if it was submitted<input type="hidden" name="submitted" value="1"/>
• We start the script we check for submissionif($_POST['submitted']) {
// work on the data that was submitted
}
else {
// print form
}
check for submission
![Page 47: LIS651 lecture 1 PHP basics Thomas Krichel 2005-03-19](https://reader036.vdocument.in/reader036/viewer/2022062321/56649e2b5503460f94b19dc0/html5/thumbnails/47.jpg)
http://openlib.org/home/krichel
Thank you for your attention!
Please switch off machines b4 leaving!