Login   Register  
PHP Classes
elePHPant
Icontem

File: _test.urlmatch.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of kumar mcmillan  >  urlmatch  >  _test.urlmatch.php  >  Download  
File: _test.urlmatch.php
Role: Unit test script
Content type: text/plain
Description: test script
Class: urlmatch
Matches any URLs in a string of text
Author: By
Last change: Added some new examples to detect PC/MS-DOS line breaks (see class source comments). Thanks to Ewald Frankenberger for pointing this out. Note that this is a small fix which didn't really effect the functionality of the class.
Date: 12 years ago
Size: 4,549 bytes
 

Contents

Class file image Download
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title><?=$PHP_SELF?></title>
    <style type="text/css">
    
.mainText { 
    font-family: Verdana,Geneva,Helvetica; font-size: 13px; color: #999999; }
a.subclassExample:active, a.subclassExample:link, a.subclassExample:visited { 
    font-family: Verdana,Geneva,Helvetica; font-size: 13px; 
    color: #999999; text-decoration: underline; } 
a.subclassExample:hover { 
    font-family: Verdana,Geneva,Helvetica; font-size: 13px; 
    color: #999999; text-decoration: none; } 

    </style>
</head>
<body bgcolor="#111111">
<span class="mainText" lang="en" xml:lang="en">
<?php 

require("./class.urlmatch.php");

$url = array();
$url[] = "use this class to find a URL that appears http://google.com somewhere in text.";
$url[] = "the URL can also appear as www.google.com somewhere in text.";
$url[] = "it's all going to end soon, see http://www.google.com/search?hl=en&ie=ISO-8859-1&q=internet+impending+doom for yourself (example of long query strings, truncated to the length you set).";
$url[] = "ahh Brighton is such a beautiful place http://www.mapquest.co.uk/cgi-bin/ia_find?link=btwn/twn-map_results&event=find_select&search=[3-22]4+VICTORIA+ROAD,+BRIGHTON,+EN,+UK&uid=uagab4hbv2icgphc:y2haaxl47&lat=508271&lng=-1495&country=UK&level=9&style=3&width=390&height=245 (another example of an extremely long query string url)";
$url[] = "lots of subdomains -- http://lc2.law13.hotmail.passport.com/cgi-bin/login -- right here.";
$url[] = "also does secure (https://www.paypal.com/) sites (in parenthesis) or typed like above";
$url[] = "also does: ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.2.tar.gz";
$url[] = strip_tags("example with text processed by strip_tags(): (<a target=_blank href=\"http://yahoo.com\">http://yahoo.com</a>).  This is the ideal way to use the urlmatch class.");
$url[] = "same example of text with ".htmlspecialchars("<a>")." tag, unprocessed by strip_tags(): <a target=_blank href=\"http://yahoo.com\">http://yahoo.com</a>.  The source is untouched, but you can't match the same url if it appears un-tagged: http://yahoo.com.  As a workaround, it is ideal to use strip_tags() before urlmatch() and specify the tags you want to keep.";
$url[] = "example of detection within trailing HTML tags: <p>A paragraph.</p><p>Here's a URL with trailing html tags: http://www.yahoo.com</p>";
$url[] = "punctuation example: Have you ever used http://google.com?";
$url[] = "punctuation example: Have you ever used http://google.com!";
$url[] = "punctuation example: Have you ever used http://google.com.";
$url[] = "punctuation example: Have you ever used http://google.com, then http://yahoo.com?";
$url[] = "punctuation example: using http://google.com; using http://yahoo.com";
$url[] = "punctuation example: Have you ever used \"http://google.com\"";
$url[] = "punctuation example: Have you ever used 'http://google.com'";
$url[] = "punctuation example: Have you ever used (http://google.com)";
$url[] = "http://www.dopeman.com";
$url[] = "HTTP://WWW.DOPEMAN.COM";
$url[] = "current limitation of the class: can't process www urls when the same url appears in multiples with and without the url protocol (unless one of the urls has a different case): http://www.dopeman.com www.dopeman.com WWW.DOPEMAN.COM";
$url[] = "this works though: www.uofd.tv www.uofd.tv or www.newbirthusa.com www.newbirthusa.com";
$url[] = "this works too: duplicate urls appearing with trailing punctuation: www.uofd.tv, www.uofd.tv or www.newbirthusa.com, www.newbirthusa.com";
$url[] = "this works too: http://www.dopeman.com http://www.dopeman.com WWW.DOPEMAN.COM";
$url[] = "http://test_-chars9.test_-chars9.test_-chars9.com/";
$url[] = "http://nomatch/";
$url[] = "www.ot13.de.\r\nwww.url.com,\r\n(simulate PC line breaks)";

$u = new urlmatch();
$u->debug FALSE;
$u->charLimit 70;
$u->breakTxt "...";
$u->startFromLeft TRUE;
$u->addProperty("class=\"subclassExample\"");
$u->addProperty("target=\"_blank\"");
    
$num 0;
foreach(
$url as $stringWithUrl)
{
    
$num++;
    echo 
"<b>($num)</b> '"$u->match($stringWithUrl), "'\n<br /><br />\n\n";
}

$num++;
$stringWithUrl "<b>($num)</b> another example: www.righton.com";
echo 
$u->match($stringWithUrl,"you can also specify generic text for the matched link"),
                                                                        
"\n<br /><br />\n\n";

?>
</span>
</body>
</html>