பி.எச்.பி

**பி.எச்.பி** (*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 கோப்பில் பின்வருமாறு எச்.டி.எம்.எல் ச் சேக்கலாம்.

```php
<?php
பி.எச்.பி....

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

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

?>
```


### எச்.டி.எம்.எல் உள் பி.எச்.பி

```html4strict
<html>
<head>
</head>
<body>

<?php
echo "Hello!";
?>

</body>
</html>
```


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

## மொழி அமைப்பு
### உலகே வணக்கம்


```php
<?php
print "Hello World!";
?>
```




```
Hello World!
```




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

### கட்டுப்பாடு (Control Flow)
#### எனில்/if


```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";
```




```
You have selected the Tamil Wikipedia
```




#### தெரிவு/Switch


```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";
}
```




```
You have selected Hindi Wikipedia
```




### மடக்கு கட்டளை (சுற்று)
#### வரை (while) மடக்கு கட்டளை


```php
<?php
$i=1;
while($i<=5)
  {
  echo "The number is " . $i . "<br />";
  $i++;
  }
?>
```




```
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
```




#### for சுற்று


```php
<?php
for ($i=1; $i<=5; $i++)
{
  echo "Iteration:".$i." Hello World!<br />";
}
?>
```




```
Iteration:1 Hello World!
Iteration:2 Hello World!
Iteration:3 Hello World!
Iteration:4 Hello World!
Iteration:5 Hello World!
```



#### ஒவ்வொன்றாக (foreach) மடக்கு கட்டளை


```php
<?php
$set = array(10, 20, 30, 40);
foreach ($set as $val)
{
echo $val * 10;
echo "<br />";
}
```




```
100
200
300
400
```




### செயலி


```php
<?php
function add($a, $b)
  {
  $total = $a + $b;
  return $total;
  }

echo "The total is:".add(56, 44);
?>
```




```
The total is:100
```




### கோப்பை கையாளுதல்
#### கோப்பை வாசித்தல்

```php
$fh = fopen("C:\welcome.txt", "r") or exit("Unable to open file!");
while(!feof($fh))  {
  echo fgets($fh). "<br />";
  }
fclose($fh);
```


#### கோப்பில் எழுதுதல்/இணைத்தல்

```php
$fh = fopen("C:\welcome.txt", "a") or exit("Unable to open file!");
fwrite($fh, "This info is appended to the file.");
fclose($fh);
```


### சுருங்குறித்தொடர்


```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";
}
?>
```




```
Yes, A Match
```




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


```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);
```


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



```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()."<br />";
echo "The multiple is: ".$c1->mul();
?>
```




```
This sum is: 4
The multiple is: 3
```




* calc.php கோப்பு

```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;
    	}
    }
?>
```


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

## மேற்கோள்கள்

## வெளி இணைப்புகள்
* PHP எப்படி வேலை செய்கிறது ?  - 
* PHP யின் அடிநிலை இலக்கணம்  - 
* PHP வினைக்குறி  - 
* PHP சரங்கள்  - 
*  பி.எச்.பி. டொட் நெற் - 
* PHP Tutorial - 
* 50 Extremely Useful PHP Tools  - 
* php builder - 
* tizag php - 

பகுப்பு:படிவ நிரலாக்க மொழிகள்
பகுப்பு:பொருள் நோக்கு நிரலாக்க மொழிகள்
பகுப்பு:தமிழ்க் கணிமை நிரல் எடுத்துக்காட்டுக்கள் உள்ள கட்டுரைகள்
பகுப்பு:பல்லியக்குதள மென்பொருட்கள்