PHP Classes

File: tests/php_classes_header.php

Recommend this page to a friend!
  Classes of Marco Marchiņ   Regexp Builder   tests/php_classes_header.php   Download  
File: tests/php_classes_header.php
Role: Example script
Content type: text/plain
Description: Php class header match
Class: Regexp Builder
Build regular expressions programmatically
Author: By
Last change:
Date: 15 years ago
Size: 1,658 bytes
 

Contents

Class file image Download
<?php
require_once "../regexpBuilder.php";
/*
PHP class header. Capture the name of the class and the optional extension class.
Format: class name extends extensionName
LOGIC:
- class
- one or more spaces
- start capturing
- one or more letters, digit or underscore characters
- stop capturing
- start a new group
- one or more spaces
- extends
- one or more spaces
- start capturing
- one or more letters, digit or underscore characters
- stop capturing
- close group and match only if it's present
*/

$regexp=new regexpBuilder(CASE_INSENSITIVE);
$regexp->match("class") //Class
->match(SPACE_CHAR) //One or more spaces
->capture() //start capturing
->matchOneOfTheseChars(LETTER_CHAR.DIGIT_CHAR."_")->frequency(ONE_OR_MORE) //one or more letters, digit or underscore characters
->closeCapture() //stop capturing
->openGroup() //start a new group
->match(SPACE_CHAR) //One or more spaces
->match("extends") //extends
->match(SPACE_CHAR) //One or more spaces
->capture() //start capturing
->matchOneOfTheseChars(LETTER_CHAR.DIGIT_CHAR."_")->frequency(ONE_OR_MORE) //one or more letters, digit or underscore characters
->closeCapture()//stop capturing
->closeGroup()->frequency(ZERO_OR_ONE); //close group and match only if it's present

$match=$regexp->execOn("class test extends extensionName");
echo
"class test extends extensionName<br>Match 1: ".$match[1][0]."<br>"."Match 2: ".$match[2][0]; //Match 1: test, Match 2: extensionName
$match=$regexp->execOn("class test");
echo
"<br><br>class test<br>Match 1: ".$match[1][0]."<br>"."Match 2: ".(isset($match[2][0]) ? $match[2][0] : ""); //Match 1: test, Match 2:
?>