CHAPTER 5 to 7

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 72

University of Computer Studies, Pyay

CHAPTER 5
STRINGS

Daw Aye Aye Theint


Lecturer
ITSM

1
Strings
$myString = ‘hello’; [OR] $myString = “hello”;
For example:

<?php Output:
Hello World!
$myString = ‘world’; Hello, $myString!
echo “Hello” . “<br>”;
echo "Hello, $myString! <br/>";
echo 'Hello, $myString! <br/>';
?>

2
Common escape sequences

Sequence Meaning
\\ A backslash
\$ A $ symbol
\” A double quote

Output: Syntax:
There is a “big dog” at the background. echo "There is a \"big
dog\" at the background.";

3
Working with Character Strings
 characters : letters, numbers, and punctuation
 a character string : a series of characters.
 When a number is used as a character,
 it is just a stored character, the same as a letter. (09 434456787)
 can’t be used in arithmetic. (Not- 3+5)
When a character string store in a variable, double quotes or single quotes are used.

4
Working with Character Strings
<?php
$number = 10;
$string1 ="There are '$number' people in line.";
Output:
$string2 ='There are "$number" people waiting.'; There are ‘10’ people in line.
echo $string1."<br/>"; There are “$number” people waiting.
echo $string2;
?>

5
Accessing Characters within a String
$myString = “Hello, world!”;

echo $myString[0] . “ <br /> ”; // Displays ‘H’


echo $myString[7] . “ <br /> ”; // Displays ‘w’

$myString[12] = ‘?’;
echo $myString . “ <br /> ”; // Displays ‘Hello, world?’

6
Manipulating strings
PHP provides many built-in functions for manipulating strings.
trim() removes white space from the beginning and end of a string
ltrim() removes white space only from the beginning of a string
rtrim() removes white space only from the end of a string
For example:

<?php Output:
$myString = " What a lot of space! "; |What a lot of space!|
echo "|".trim($myString)."|<br/>"; |What a lot of space! |
echo "|".ltrim($myString)."|<br/>"; | What a lot of space!|
echo "|".rtrim($myString)."|<br/>";
?>
7
str_repeat() and str_replace()
(1) str_repeat() function (2) str_replace () function

Function format : str_repeat(“str”,n) Function format : str_replace(“a”, “b”, “str”)


Example: Example:
<?php <?php
$x=str_repeat(“x”,5); $a= “abc abc”;
echo $x; $s=str_replace(“b”, “i”,$a); echo $s;
?> // $x=xxxxx ?> // $s=aic aic

8
strchr() and stristr()
(3) strchr() function (4) stristr() function

Function format : strchr(“string”, “char”) Function format : stristr(“string”, “char”)


Example: Example:
<?php
<?php
$str= “aBc abc”;
$str= “aBc abc”;
$sub=stristr($str, “b”);
$sub=strchr($str, “b”);
echo $sub;
echo $sub;
?> // $sub=Bc abc
?> // $sub=bc

9
strlen() and strpos()
(5) strlen() function (6) strpos() function

Function format : strlen(“string”) Function format : strpos(“string”, “substr”)


Example: Example:
<?php <?php
$n = strlen(“hello”); $str= “hello”;
echo $n; $n=strpos($str, “ll”);
?> // $n=5 echo $n;
?> // $n=2

10
strrchr() and strrev()
(7) strrchr() function (8) strrev() function

Function format : strrchr(“string”, “char”) Function format : strrev(“string”)


Example: Example:
<?php <?php
$str = “abc abc” ; $n=strrev(“abcde”);
$sub = strrchr($str, “b”); echo $n;
echo $sub; ?> // $n=edcba
?> // $sub=bc

11
strrpos() and strtolower()
(9) strrpos() function (10) strtolower() function

Function format : strrpos(“string”, Function format : strtolower(“string”)


“substr”) Example:
Example: <?php
<?php $str= strtolower(“YES”);
$str = “abc abc” ; echo $str;
$n = strrpos($str, “bc”); ?> // $str=yes
echo $n;
?> // $n=5

12
strtoupper() and strtr()
(11) strtoupper() function (12) strtr() function
Function format : strtr(“string”, “str1”, “str2”)
Function format : strtoupper(“string”) Example:
Example: <?php
<?php $str= “aa bb cc”;
$str = strtoupper(“yes”); $new=strtr($str, “bb” , “xx”);
echo $str; echo $new;
?> // $str=YES ?> // $new=aa xx cc

13
substr() and substr_count()
(13) substr() function (14) substr_count() function

Function format : substr(“string”, n1 , n2) Function format : substr_count(“str”, “sub”)


Example: Example:
<?php <?php
$sstr = substr(“hello”, 2,4); $str= “abc ab abc”;
echo $sstr; $s= “bc” ;
?> // $sstr=llo $n= substr_count($str, $s);
echo $n;
?> // $n=2

14
substr_replace() and strpbrk()
(15) substr_replace() function (16) strpbrk() function

Function format : substr_replace(“s”, “r”, Function format : strpbrk(“string”, “str”)


n , l) Example:
s=string,r=replace,n=index,l=length <?php
Example: $myString= “Hello, world!”;
<?php echo strpbrk($myString, “abcdef”);
$s= “abc abc”; // display ‘ello, world!’
$t = substr_replace($s,“x”, 2,3); echo strpbrk($myString, “xyz”);
echo $t; // display (false)
?> // $t=abxbc ?>

15
ucfirst() and ucwords()
(17) ucfirst() function (18) ucwords() function

Function format : ucfirst(“string”)


Function format : ucwords(“string”)
Example:
Example:
<?php
$str= “a B c”; <?php
$str2= ucfirst($str); $str= “aa Bb cc”;
echo $str2; $str2= ucwords($str);
?> // $str2=A B c echo $str2;
?> // $str2=Aa Bb Cc

16
Formatting output strings
The output produced by PHP is always in string format.
<?php
$number = 4; Eg
echo “Sally has $number children.”; <?php
?> //The output is : Sally has 4 children. printf("%d times %d is %d.<br>",2,3,2*3);
?>

Formatting the output is an important part of scripting.


General - Purpose Formatting with printf().
General format:
printf(“format”,$varname1,$varname2,. . .);

17
Padding the Output
Padding Strings with str_ pad()

<?php Output:
echo str_pad("Hello, world!",20)."<br>"; Hello, world!
echo str_pad("Hello, world!",20,"*")."<br/>"; Hello, world!*******
echo str_pad("Hello, world!",20,"123")."<br/>"; Hello, world!1231231
?>

18
Working with Dates and Times
Dates and times can be important elements in a script.
The computer stores dates and times in a format called a timestamp, which is expressed entirely
in seconds.
PHP converts dates from your notation into a timestamp the computer understands and from a
timestamp into a format that is familiar to people.
Formatting dates

$mydate = date(“format”,$timestamp);
The timestamp format is a UNIX Timestamp, an integer that is the number of seconds from
January 1, 1970 00:00:00 GMT(Greenwich Mean Time) to the time represented by the
timestamp.

19
Working with Dates and Times
Example:

$today = date(“Y/m/d”);
If today is April 26, 2018, this statement returns: 2018/04/26
$todayMO = date("m");
$todayDay= date("d");
$startYr = date("Y");

20
Working with Dates and Times

Table 5-4 from Page 93 of PHP 5 for


Dummies

21
Working with Dates and Times
Storing a timestamp in a variable
$today = time(); // timestamp with the current date and time
$today = strtotime(“today”); //today’s timestamp

store a specific date and time as a timestamp


The format is:
$importantDate = mktime(h,m,s,m,d,y);

Example:

$importantDate = mktime(0,0,0,1,15,2003);

22
Working with Dates and Times
strtotime recognizes the words and abbreviations in a variety of ways.
Example:

$d = strtotime(“tomorrow”); #24 hours from now


$d = strtotime(“now + 24 hours”);
$d = strtotime(“last saturday”);
$d = strtotime(“8pm + 3 days”);
$d = strtotime(“2 weeks ago”); # at current time
$d = strtotime(“next year gmt”); #1 year from now
$d = strtotime(“tomorrow 4am”);

23
Working with Dates and Times
<!DOCTYPE html> echo date("Y-m-d h:i:sa", $d) . "<br>";

<html>

<body> $d=strtotime("+3 Months");

<?php echo date("Y-m-d h:i:sa", $d) . "<br>";

$d=strtotime("tomorrow"); ?>

echo date("Y-m-d h:i:sa", $d) . "<br>";

</body>

$d=strtotime("next Saturday"); </html>

24
University of Computer Studies, Pyay

CHAPTER 6
ARRAYS

Daw Aye Aye Theint


Lecturer
ITSM

25
Outlines
Building arrays
 Assigning values to arrays
 Sorting arrays
 Using values in arrays
 Building multidimensional arrays

26
Arrays
Arrays are complex variables that store a group of values under a single variable name.
An array is useful for storing a group of related values.
Information in an array can be handled, accessed, and modified easily.

There are three kind of arrays:

1. Numeric array - An array with a numeric index


2. Associative array - An array where each ID key is associated with a value
3. Multidimensional array - An array containing one or more arrays

27
Creating Arrays
1. Numeric array
<?php>
0 1 2
$names[0] = "Mg Mg"; name Mg Mg Ma Ma Mi Mi
$names[1] = "Ma Ma"; s
$names[2] = "Mi Mi";
echo $names[1]." and ".$names[2]." are ".$names[0]." 's neighbours";
?>

<?php>
$names =array(“Mg Mg”,”Ma Ma”,”Mi Mi”);
?> Output:
Ma Ma and Mi Mi are Mg Mg’s neighbours

28
Creating Arrays
2. Associated Array
An associative array is indexed with strings between the square brackets rather than numbers.
Whereas numerical arrays are indexed numerically, associative arrays are indexed using
names.
An array can be viewed as a list of key/value pairs, stored as follows:
$arrayname[‘key1’] = value1;
$arrayname[‘key2’] = value2;
$arrayname[‘key3’] = value3;
The key is also referred to as the index.
 This associative array is useful in Database.
29
Creating Arrays <?php>
$myBook[“title”] = “TheGrapes of Warth";
For example, $myBook[“author”] = “John Steinbeck";
$myBook[“pubYear”] = 1939;
$myBook = array( “title” => “The Grapes of Wrath”,
?>
“author” => “John Steinbeck”,
“pubYear” => 1939);
echo "Title is ".$myBook["title"]."<br>"."Author is ".
$myBook["author"]."<br>"."Publish Year is ".$myBook["pubYear"];

titl auth pubYe key


myBook or ar
e

The Grapes John 1939


value
of Warth Stenbeck

30
Creating Arrays
 Create an array with a range of values by using the Output(Example1):
following statement: $years[0] = 2001
$years[1] = 2002
 Example1:
...
$years = range(2001, 2010); $years[8] = 2009
$years[9] = 2010
 print_r ($years);
Output(Example2):
$reverse_letters[0]=z
 Example2: $reverse_letters[1]=y
...
$reverse_letters= range(“z”, “a”); $reverse_letters[24]=b
print_r ($reverse_letters); $reverse_letters[25]=a
31
Example
<?php
$address['name'] = "Peter"; Output:
$address['occupation'] = "actor"; Peter is 30 years old.
$address['age'] = "30"; name: Peter
echo $address["name"] . " is " . $address["age"] . " years old.<br>"; occupation: actor
foreach($address as $key=>$value) age: 30
{
echo "<b>$key:</b> $value<br/>";
}
?>
32
Example
<html>
Output:
<body>
Peter is 35 years old.
<?php
$age=array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
</body>
</html>

33
Example
<html> Output:
Key=Peter, Value=35
<body>
Key=Ben, Value=37
<?php Key=Joe, Value=43

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $k => $value){
echo "Key=" . $k . ", Value=" . $value;
echo "<br/>";
}
?>
</body>
</html>
34
Outputting an Entire Array with print_r()
Can see the structure and values of any array by using one of two statements : var_dump or
print_r.
To display the $customers array: print_r($customers);
This print_r statement provides the following output:

Array ( [1] => Sam [2] => Sue [3] => Mary )
This above output shows the key and the value for each element in the array.

35
Outputting an Entire Array with var_dump()
To get more information, use the following statement:
var_dump($customers); array(3) {
[1]=>string(3) “Sam”
[2]=>string(3) “Sue”
[3]=>string(4) “Mary”
}

36
Working with Multidimensional Arrays
Multidimensional Arrays
 In a multidimensional array, each element in the main array can also be an array.
 And each element in the sub-array can be an array, and so on.

Griffin
<?php Peter Lois Megan
$families = array (
array("Peter","Lois","Megan"), Quagmire
array("Glenn"), Glenn
array("Cleveland","Loretta","Junior") Brown
); CleveLa Loretta Junior
echo $families[0][0]; //Output-Peter nd
?>

37
Working with Multidimensional Arrays
Multidimensional Arrays

Griffin
Peter Lois Megan
<?php
$families = array("Griffin" => array("Peter","Lois","Megan"), Quagmire
"Quagmire" => array("Glenn"), Glenn
"Brown" => array("Cleveland","Loretta","Junior")
); Brown
echo $families['Griffin'][0]; //Output-Peter CleveLa Loretta Junior
nd
?>

38
Modifying Arrays
array_push($arraya, $d);

<?php Output:
$arraya = array(“a”,”b”,”c”); Array ( [0] => a [1] => b [2] => c )
print_r($arraya);
echo("<br>") ; Array ( [0] => a [1] => b [2] => c [3] => d )
foreach($arraya as $key=>$value)
{ if($value == 'b')
{ $d = 'd';
array_push($arraya, $d); //value d is inserted in arraya
print_r($arraya);
}
}
?>
39
Removing values from arrays
unset($my_array[1]);
Output:
Example1:
Element 1
<?php Element 2
$my_array = array("Element 1", "Element 2", "Element 3"); Element 3
foreach ($my_array as $name)
{
echo "$name<br>";
}
unset($my_array[0]);
foreach ($my_array as $name)
{ Output:
echo "$name<br>"; Element 2
} Element 3
?>

40
Removing values from arrays
Example2:
<?php Output:
$colors = array ( "red", "green", "blue", "pink", "yellow"); red
$colors[2] = ""; green
foreach($colors as $res) pink
echo($res ."<br>"); yellow
unset($colors[3]);
Output
foreach($colors as $res) red
echo($res ."<br>"); green
?>
yellow

41
PHP Sorting Arrays
The elements in an array can be sorted in alphabetical or numerical order, descending or
ascending.
PHP - Sort functions for arrays

1.sort() - sort arrays in ascending order


2.rsort() - sort arrays in descending order
3.asort() - sort associative arrays in ascending order, according to the value
4.ksort() - sort associative arrays in ascending order, according to the key
5.arsort() - sort associative arrays in descending order, according to the value
6.krsort() - sort associative arrays in descending order, according to the key

42
Sorting Arrays
Sort Array in Ascending Order - sort( )
The following example sorts the elements of the $fruits array in ascending alphabetical order:
Syntax: sort($arraryName);
Example1: Output:
<?php apple
$fruits = array("lemon", "orange", "banana", "apple"); banana
sort($fruits); lemon
foreach ($fruits as $key => $val) orange
{
echo $val."<br/>";
}
?>

43
Sorting Arrays
Example2:
Output:
<?php Austin
$capitals['CA'] = "Sacramento"; Sacramento
Salem
$capitals['TX'] = "Austin";
$capitals['OR'] = "Salem";
asort($capitals) ;
foreach($capitals as $ans=>$value)
echo $value."<br/>";
?>
44
Output:

Volvo
Sorting Arrays Toyota
BMW
 Example3:
<html><body>
<?php
$cars=array("BMW","Volvo","Toyota");
rsort($cars);
$clength=count($cars);
for($x=0;$x<$clength;$x++)
{
echo $cars[$x];
echo "<br/>";
}
?>
</body></html> (or)

45
Adding and Removing Array Elements
array_unshift() -Adds one or more new elements to the start of an array
array_shift() -Removes the first element from the start of an array
array_push() -Adds one or more new elements to the end of an array
array_pop() -Removes the last element from the end of an array
array_splice() -Removes element(s) from and/or adds element(s) to any point in an array
can’t add key/value pairs to associative arrays using array_unshift() (or its counterpart,
array_pop() ).
can work around this by using array_merge() .

46
array_shift()
<html>
<body>
<?php
$myBook = array("title" => "The Grapes of Wrath",
"author" => "John Steinbeck",
"pubYear" => 1939);
echo array_shift( $myBook )."<br/>";
print_r( $myBook );
?> Output:
</body> The Grapes of Wrath
</html> Array ( [author] => John Steinbeck [pubYear] => 1939 )

47
array_push()
<html>
<body>
<?php
$authors = array("Steinbeck","Kafka","Tolkien","Dickens");
echo array_push($authors,"Hardy","Melville")."<br/>";
print_r($authors);
?> Output:
6
</body>
Array ( [0] => Steinbeck [1] => Kafka [2] => Tolkien [3] =>
</html> Dickens [4] => Hardy [5] => Melville )

48
Turning the original array into a
multidimensional array using array_push()
Output:
Example: 5
<html>
Array
<body> (
<?php [0] => Steinbeck
$authors = array("Steinbeck","Kafka","Tolkien","Dickens"); [1] => Kafka
$newAuthors = array("Hardy","Melville"); [2] => Tolkien
echo array_push( $authors, $newAuthors )."<br/>"; [3] => Dickens
[4] => Array
echo "<pre>"; (
[0] => Hardy
print_r($authors);
[1] => Melville
echo "</pre>"; )
?> )
</body>
</html>

49
array_pop()
<html>
<body>
<?php
$myBook = array("title" => "The Grapes of Wrath",
"author" => "John Steinbeck",
"pubYear" => 1939);
echo array_pop($myBook). "<br/>";

print_r($myBook);
?> Output:
</body> 1939
</html> Array ( [title] => The Grapes of Wrath [author] => John Steinbeck )

50
array_splice()
print_r( array_splice( $authors, 2, 0, $arrayToAdd ) );
- “At the third position (2), remove zero (0) elements, then insert $arrayToAdd”.

print_r( array_splice( $authors, 0, 2, $arrayToAdd ) );


- This code removes two elements from the start of the array (position 0), then inserts the
contents of $arrayToAdd at position 0.

print_r( array_splice( $authors, 1 ) );


- This code removes all the elements from the second position in the array (position 1) to the
end of the array.
51
array_splice()
<html>
<body>
<?php
$authors = array("Steinbeck", "Kafka", "John", "Peter");
$moreAuthors = "Milton";
array_splice($authors, 2, 0, $moreAuthors);
print_r($authors);
echo "<br>";

$moreAuthors = "Steven";
array_splice($authors, 0, 2,$moreAuthors);
print_r($authors);
echo "<br>"; Output:
Array ( [0] => Steinbeck [1] => Kafka [2] => Milton [3] => John [4] => Peter )
array_splice($authors, 1); Array ( [0] => Steven [1] => Milton [2] => John [3] => Peter )
print_r($authors); Array ( [0] => Steven )
?>
</body>
</html> 52
Merging Arrays Together
array_merge() joins the array elements of the arrays together to produce the final array.
This contrasts with array_push(), array_unshift(), and the square bracket syntax, which all
insert array arguments as - is to produce multidimensional arrays.

<html> Output:
<body> Array ( [0] => Steinbeck [1] => Kafka [2] => Tolkien [3] => Milton )
<?php
$authors = array("Steinbeck","Kafka");
$moreAuthors = array("Tolkien","Milton");
print_r(array_merge($authors,$moreAuthors));
?>
</body>
</html>
53
Converting Between Arrays and Strings
Converting String to Array: explode()
Example 1:

<html>
<body>
<?php
$fruitString= "apple,pear,banana,strawberry,peach";
$fruitArray = explode(",", $fruitString);
print_r($fruitArray);
?>
</body>
</html>
Output:
Array ( [0] => apple [1] => pear [2] => banana [3] => strawberry [4] =>
peach ) 54
Converting Between Arrays and Strings
Example 2:

<html>
<body>
<?php
$fruitString ="apple,pear,banana,strawberry,peach";
$fruitArray = explode(",",$fruitString,3);
print_r($fruitArray);
?>
</body>
</html>
Output:
Array ( [0] => apple [1] => pear [2] => banana,strawberry,peach )

55
Converting Between Arrays and Strings
Converting Array to String: implode()
Example:
Output:
apple,pear,banana,strawberry,peach
<html>
<body>
<?php
$fruitArray = array("apple","pear","banana","strawberry","peach");
$fruitString = implode(",", $fruitArray );
echo $fruitString;
?>
</body>
</html>

56
Converting an Array to a List of Variables
$myBook = array( “The Grapes of Wrath”, “John Steinbeck”, 1939 );

list( $title, $author, $pubYear ) = $myBook;


Output:
<html> The Grapes of Wrath
<body> John Steinbeck
<?php 1939
$myBook = array("The Grapes of Wrath","John Steinbeck",1939);
list($title,$author,$pubYear)=$myBook;
echo $title."<br/>";
echo $author."<br/>";
echo $pubYear."<br/>";
?>
</body>
</html>

57
University of Computer Studies, Pyay

CHAPTER 7
FUNCTIONS

Daw Aye Aye Theint


Lecturer
ITSM

58
Outlines
Calling Functions
PHP Function
Understanding Variable Scope (Example)
Working with Global Variables(Example)
 Working without References(Example)
Passing References to Your Own Functions(Example)

59
Calling Functions
 PHP’s built-in Functions

<?php Output:
The square root of 9 is: 3
echo "The square root of 9 is: ".sqrt(9)."<br/>";
?>

Working with Variable Functions


Output:
<?php The square root of 9 is: 3
$squareRoot = "sqrt";
echo "The square root of 9 is: ".$squareRoot(9).".<br/>";
?>
60
Formula (degree to radium) (Degree ×
π/180°)
Eg. sin (30° × π/180°)

Example
<?php
Output:
$trigFunctions = array("sin","cos","tan"); sin(30) =0.5
cos(30) =0.866025403784
$degrees = 30; tan(30) =0.57735026919
foreach($trigFunctions as $trigFunction)
{
echo "$trigFunction($degrees) =".$trigFunction(deg2rad($degrees))."<br/>";
}
?>

61
PHP Function
Function with no Parameter Function with Parameter
function function_name() function function_name($num)
{ {
block of statements block of statements
function_name(); function_name(5);
} }
Function with no Parameter (Eg)
<?php Function with Parameter
<?php
function myMessage() { function familyName($fname) {
echo "Hello world!"; echo "$fname<br>";
}
} familyName("Jani");
myMessage(); ?>
?> 62
PHP Function
Function with return
function function_name()
{
block of statements
return value;
}

Function Call:
$return_value=function_name()

63
Function with Default Parameters(Eg)
function doIt($num=5)
{
PHP Function echo $num;
}
Function with Default Parameters
doIt();
function function_name($num=5”)
{ Function with Default Parameters(Eg)
block of statements function doIt($num=5)
} {
echo $num;
Function Call: }
function_name() doIt();

64
Understanding Variable Scope (Example)
<?php
$name=“Ma Ma”; Global Variable(Outside the
function)
function helloWithVariables(){
$hello = "Hello, ";
Local Variable(Inside the
$world = "world!"; function)

return $hello . $world;


} Output:
Hello, world!
echo helloWithVariables(); //function call
?>
65
Working with Global Variables(Example)
<?php <?php
$var=20; $var=20;
function funA(){ function funA()
$var=10; {
echo $var; echo $var;
} }
funA(); funA();
?> ?>

66
Working with Global Variables(Example)
<?php
$var=20;
function funA(){
global $var;
echo $var;
}
funA();
?>

67
Working with Global Variables(Example)
<?php Output:
function setup() { Hello there!
global $myGlobal;
$myGlobal = "Hello there!";
}
function hello() {
global $myGlobal;
echo "$myGlobal <br/>";
}
setup();
hello();
?>

68
Working without References(Example)
<?php
function resetCounter( $c ) { Output:
$c = 0; 3
} 3
$counter = 0; resetCounter
$counter++; 001
$counter++; $c
$counter++; $counter 3
0
3
echo "$counter<br/>";
resetCounter($counter); 002
echo "$counter<br/>";
?>

69
Passing References(Example)
<?php Output:
function resetCounter(& $c){ 3
$c = 0; 0
resetCounter
}
001
$counter = 0; & $c
$counter++; $counter 0
3
$counter++; 001
$counter++;
3
0
echo "$counter<br/>";
resetCounter( $counter );
echo "$counter<br/>";
?>

70
Different between Pass by Value
and Pass by Reference

71
Thank You

72

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy