# பி.எச்.பி


**பி.எச்.பி** (*PHP: Hypertext Preprocessor*) என்பது பரவலாகப் பயன்படுத்தப்படுகின்ற ஒரு பொது நோக்க சேவையக படிவ நிரலாக்க மொழி. இது இணைய நிரலாக்கத்திற்காக வடிவமைக்கப்பட்டு நிகழ்நிலை (Dynamic) இணைய பக்கங்களை உருவாக்கப் பயன்படுகிறது. இம் மொழியின் நிரற்றொடர்களை மீப்பாடக் குறிமொழியிலான (எச்.டி.எம்.எல் - வடிவமைப்பு குறியீட்டு மொழி - HTML) பக்கங்களுக்குள்ளேயே பொதிந்து விடலாம். பி.எச்.பி இணைய பக்கங்கள் வலை சேவையகத்தால் (Web Server) செயலி தொகுதியின் (Processor Module) உதவியுடன் மொழிப்பெயர்க்கப் படுகின்றது. மேலும் இது கட்டளை நிரல் இடைமுகப்பை தன்னகத்தே கொண்டு தனித்தியங்கும் வரைகலை பயன்பாடுகளில் பயன்படுகின்றது. பி.எச்.பி பெரும்பான்மையான வலை சேவையகங்கள் மற்றும் இயங்கு தளங்களில் இலவசமாக நிறுவி பயன்படுத்த வல்லது. இது மட்டுமின்றி, பி.எச்.பி மைக்ரோசாப்ட் ஆக்டிவ் சர்வர் பேஜஸ் சேவையக படிவ நிரலாக்க மொழி மற்றும் இதையொத்த நிரலாக்க மொழிகளுக்கு போட்டியாக விளங்குகிறது. பி.எச்.பி 20 மில்லியன்கள் இணைய தளங்களிலும், 1 மில்லியன் வலை சேவையகங்களிலும் நிறுவி பயன்படுத்தப் படுகின்றது  

பி.எச்.பியை முதன் முதலில் ராஸ்மஸ் லெடார்ஃ 1995 ஆம் ஆண்டு உருவாக்கினார்.பிறகு பி.எச்.பியின் முக்கிய செயல்பாடுகள் The PHP Group ஆல் கட்டமைக்கப்பட்டது.  

பி.எச்.பி முதலில் "Personal Home Page" என்றழைக்கப்பட்டது. இப்போது "PHP: Hypertext Preprocessor" என்று சுழல்நிலை சுருக்கமாக (recursive acronym) அழைக்கப்படுகின்றது..  

## பயன்பாடு
பி.எச்.பி திறந்த மூல நிரல் மொழியாகும். மூன்று வகைகளில் இதனை உபயோகப்படுத்தமுடியும்.  
- இணையதளம் அமைப்பதற்கு
- மேசைக்கணினி பயன்பாடுகள் உருவாக்குவதற்கு
- கட்டளை நிரல்கள் உருவாக்குவதற்கு

இணைய தளம் அமைப்பதற்குத்தான் அதிகம் பயன்படுத்தப்படுகிறது. இத்துடன் உலாவியும் இணணய வழங்கியும் சேர நிகழ்நிலை (டயனமிக்) இணைய பக்கங்கள் உருவாக்க முடியும்.  

பிஎச்பி மடிக்கணினி கருவிகள் உருவாக்குவதற்கு இலகுவானதும் அல்ல பரிந்துரைக்கப்படுவதுமில்லை.  

பரவலாக பிஎச்பிக்கு மையெசுக்யூயெல் தரவுதளமாகப் பயன்படுத்தப்படுகிறது.  

## மொழிச் சூழல்
### வெளியீடுகள்
20 ஜனவரி 2021 அன்று பி.எச்.பி 8.1.2 வெளியிடப்பட்டிருக்கிறது .  

சூன் 1, 2007 அன்று பி.எச்.பி 5.2.3 வெளியிடப்பட்டிருக்கிறது. இதில் பொருள் நோக்கு நிரலாக்கத்துக்கு முக்கியத்துவம் தரப்பட்டிருக்கிறது. இதில் மையெசுக்யூயெல் நிரகம் இணைக்கப்படவில்லை. இதை தனியாக நிறுவிக் கொள்ளவேண்டும்.  

### தரவிறக்கம்
பி.எச்.பியை தானியங்கி முறையிலும், சுயமாகவும் (=manual) நிறுவ முடியும். விண்டோஸில் நிறுவுவதற்கென தனி exe ஐ தரவிறக்கம் செய்து கொள்ளலாம்.  

### ஒருங்கிணைந்த சூழல்/தொகுப்பி
Eclipse, Dreamweaver போன்று பல தொகுப்பிகள் பி.எச்.பி யை ஏதுவாக்குகின்றன. DzSoft PHP தொகுப்பி நல்ல வணிக தொகுப்பி ஆகும்.  

## பி.எச்.பி யும் எச்.டி.எம்.எல் உம்
### பி.எச்.பிக்குள் எச்.டி.எம்.எல்
பல இடங்களில் பி.எச்.பி பின் தள செயற்பாடுகளுக்கும், எச்.டி.எம்.எல், யாவாசிகிரிட்டு, சி.எசு.எசு முன் தள வடிவமைப்பு/செயறபாட்டுக்கும் பயன்படுத்தப்படுவதுண்டு. php கோப்பில் பின்வருமாறு எச்.டி.எம்.எல் ச் சேக்கலாம்.  
<source lang="php">  
<?php  
பி.எச்.பி....  

?>  
இங்கு எச்.டி.எம்.எல்  
பி.எச்.பி மாறிலிகளை <?php echo $var ?> என்று எச்.டி.எம்.எல் இல் சேக்கலாம்.  
<?php  

பி.எச்.பி...  

?>  
</source>  

### எச்.டி.எம்.எல் உள் பி.எச்.பி
<source lang="html4strict">  
<html>  
<head>  
</head>  
<body>  

<?php  
echo "Hello!";  
?>  

</body>  
</html>  
</source>  

## பி.எச்.பி இல் தமிழ்
சில தொகுப்புகள் தமிழ் சரங்களை சரிவர காட்டா. ஒருங்குறி ஏதுவாக்கப்பட்ட தொகுப்பிகளே பி.எச்.பியை சரிவரக் காட்டும். xampp நிறுவி எளிய தமிழில் பி.எச்.பி என்ற செய்முறையில் சென்ன மாதிரி செய்தால், தமிழை பி.எச்.பியில் பயன்படுத்தலாம்.  

## மொழி அமைப்பு
### உலகே வணக்கம்
<div>  
<source lang="php">  
<?php  
print "Hello World!";  
?>  
</source>  
</div>  
<div>  
<pre>  
Hello World!  
</pre>  
</div>  
<br/>  

### தரவு இனங்கள்
பி.எச்.பி மொழியில் ஐந்து தரவு இனங்கள் பரலாக பயன்படுகின்றன.  
- திசையிலிகள் (scalars) - $foo_scalar = "john";
- அணி (array) - $foo_array = array("item1", "item2", "item3");
- hash - $foo_hash = array( 'key1'=>"value1", 'key2'=>"value2", 'key3'=>"value3" );
- கோப்பு
- 

### கட்டுப்பாடு (Control Flow)
#### எனில்/if
<div>  
<source lang="php">  
$selection="ta";  
if ($selection=="hi")  
echo "You have selected the Hindi Wikipedia";  
elseif ($selection=="ta")  
echo "You have selected the Tamil Wikipedia";  
else  
echo "You have selected the English Wikipedia";  
</source>  
</div>  
<div>  
<pre>  
You have selected the Tamil Wikipedia  
</pre>  
</div>  
<br/>  

#### தெரிவு/Switch
<div>  
<source lang="php">  
$selection = "hi";  
switch ($selection)  
{  
case "ta":  
echo "You have selected Tamil Wikipedia";  
break;  
case "hi":  
echo "You have selected Hindi Wikipedia";  
break;  
default:  
echo "You have selected English Wikipedia";  
}  
</source>  
</div>  
<div>  
<pre>  
You have selected Hindi Wikipedia  
</pre>  
</div>  
<br/>  

### மடக்கு கட்டளை (சுற்று)
#### வரை (while) மடக்கு கட்டளை
<div>  
<source lang="php">  
<?php  
$i=1;  
while($i<=5)  
{  
echo "The number is " . $i . "  
";  
$i++;  
}  
?>  
</source>  
</div>  
<div>  
<pre>  
The number is 1  
The number is 2  
The number is 3  
The number is 4  
The number is 5  
</pre>  
</div>  
<br/>  

#### for சுற்று
<div>  
<source lang="php">  
<?php  
for ($i=1; $i<=5; $i++)  
{  
echo "Iteration:".$i." Hello World!  
";  
}  
?>  
</source>  
</div>  
<div>  
<pre>  
Iteration:1 Hello World!  
Iteration:2 Hello World!  
Iteration:3 Hello World!  
Iteration:4 Hello World!  
Iteration:5 Hello World!  
</pre>  
</div>  
<br/>  
#### ஒவ்வொன்றாக (foreach) மடக்கு கட்டளை
<div>  
<source lang="php">  
<?php  
$set = array(10, 20, 30, 40);  
foreach ($set as $val)  
{  
echo $val * 10;  
echo "  
";  
}  
</source>  
</div>  
<div>  
<pre>  
100  
200  
300  
400  
</pre>  
</div>  
<br/>  

### செயலி
<div>  
<source lang="php">  
<?php  
function add($a, $b)  
{  
$total = $a + $b;  
return $total;  
}  

echo "The total is:".add(56, 44);  
?>  
</source>  
</div>  
<div>  
<pre>  
The total is:100  
</pre>  
</div>  
<br/>  

### கோப்பை கையாளுதல்
#### கோப்பை வாசித்தல்
<source lang="php">  
$fh = fopen("C:\welcome.txt", "r") or exit("Unable to open file!");  
while(!feof($fh)) {  
echo fgets($fh). "  
";  
}  
fclose($fh);  
</source>  

#### கோப்பில் எழுதுதல்/இணைத்தல்
<source lang="php">  
$fh = fopen("C:\welcome.txt", "a") or exit("Unable to open file!");  
fwrite($fh, "This info is appended to the file.");  
fclose($fh);  
</source>  

### சுருங்குறித்தொடர்
<div>  
<source lang="php">  
<?php  
$subject = "Test Test 1";  
$pattern = "/\w+\s\w+\s\d+$/";  
if (preg_match($pattern, $subject)) {  
echo "Yes, A Match";  
}  
else  
{  
echo "Not A Match";  
}  
?>  
</source>  
</div>  
<div>  
<pre>  
Yes, A Match  
</pre>  
</div>  
<br/>  

## தரவுத்தளத்தோடு பி.எச்.பி
Syntax மட்டுமே:  

<source lang="php">  
<?php  
// Connect to db  
$dbhost = 'server.com';  
$username = 'user1';  
$password = 'dfs234.2';  
$database = 'Accounts';  

$dbconnect = mysql_connect($dbhost, $username, $password) or die ('Error connecting to mysql');  
mysql_select_db($database);  

//Print "Connection Status: $dbconnect";  
$isbn_array = array ;  

// Get data from query  
$query = "select employees from Accounts";  
$result = mysql_query($query_preview);  

//Testing the returned data  

if (!$result) {  
echo "Could not successfully run query ($query_order_latest) from DB: " . mysql_error;  
}  
elseif (mysql_num_rows($result) == 0) {  
echo "No rows found, nothing to print.";  
}  
elseif (mysql_num_rows($result) > 0){  
while($row_order = mysql_fetch_assoc($result_preview)){  
array_push($data_array, $row_order ['employee']); // This array contains all the employees in the db  
}  
} // End query check  

mysql_close($dbconnect);  

</source>  

## பி.எச்.பி இல் பொருள் நோக்கு நிரலாக்கம்
பி.எச்.பி இல் பொருள் நோக்கு நிரலாக்கம் செய்ய முடியும். ஒரு எளிய எடுத்துக்காட்டு கீழே. இந்த எடுத்துக்காட்டில் var, $this ஆகியவை keywords என்பது குறிப்பிடத்தக்கது.  

<div>  
<source lang="php">  
<?php  

include("C:\Documents and Settings\HP_Owner\Desktop\calc.php");  

$c1 = new Calculator;  
$c1->set_numbers(1,3);  
echo "This sum is: ".$c1->sum."  
";  
echo "The multiple is: ".$c1->mul;  
?>  
</source>  
</div>  
<div>  
<pre>  
This sum is: 4  
The multiple is: 3  
</pre>  
</div>  
<br/>  

- calc.php கோப்பு
<source lang="php">  
<?php  
class Calculator {  
//class-wide variables  
var $x;  
var $y;  
//function to gather two numbers  
function set_numbers($num1, $num2){  
$this->x = $num1;  
$this->y = $num2;  
}  
//function to add numbers together  
function sum{  
$ans = $this->x + $this->y;  
return $ans;  
}  
//function to multiply the numbers  
function mul{  
$ans = $this->x * $this->y;  
return $ans;  
}  
}  
?>  
</source>  

## இவற்றையும் பாக்க
- விதிவிலக்கை கையாளுதல்
- சூழல் மாறி
- சுழல்