|
Тема |
Ще ми обясните ли..... |
|
Автор | Unit-731 (Нерегистриран) | |
Публикувано | 29.12.04 13:30 |
|
|
Въпросът ми е не за решението на даден проблем, а по-скоро за разяснение на това решение. Имам клас, който извилча линковете от дадено url:
<?php
/**
* Extract links from a string, from a file or from a valid url
* EXAMPLE:
*
* [ TO PARSE AN URL ( or if you want, a file ) ]
* $myLinks = &new LinkExtractor(); // create a LinkExtractor Object
* if( $myLinks->parseUrl( "http://www.3site.it/index.php" ) == true ) {
* for( $a = 0, $b = count( $fetchLinks = $myLinks->getLinks() ); $a < $b; $a++ ) {
* echo $fetchLinks[$a]."<br />";
* }
* }
*
*/
class LinkExtractor {
var $linkReg = Array(
"/(?i)<a([^\a]+?)href='([^\a]+?)'/i",
"/(?i)<a([^\a]+?)href=\"([^\a]+?)\"/i",
"/(?i)<a([^\a]+?)href=([^\a]+?)[ |>]/i"
);
function LinkExtractor() {
global $__linkExtractor_linkRecipient;
$__linkExtractor_linkRecipient = Array();
}
function __manageLinkRecipient( $replacement ) {
global $__linkExtractor_linkRecipient;
array_push( $__linkExtractor_linkRecipient, htmlspecialchars( $replacement[2] ) );
}
function __callBackCaller( $st ) {
preg_replace_callback( $this->linkReg, Array( &$this, '__manageLinkRecipient' ),$st );
}
function parseUrl( $url ) {
if( @$fp = fopen( $url, "r" ) ) {
$st = '';
while( $text = fread( $fp, 8192 ) ) {
$st .= $text;
}
fclose( $fp );
$this->__callBackCaller( $st );
return true;
}
return false;
}
function getLinks() {
global $__linkExtractor_linkRecipient;
return $__linkExtractor_linkRecipient;
}
}
?>
Ако може да ми обясните за аргументите на тази функция:
preg_replace_callback( $this->linkReg, Array( &$this, '__manageLinkRecipient' ),$st );
или в частност втория аргумент. Просто ми е напълно неясно с каква цел се подава масив, състоящ се от референция към текущия обект (нали ?) и функция.
Другият въпрос, който имам е защо в доста кодове се използва
foo = &new foo();
Предполагам това връща референция към новосъздадения обект, но не мога да разбера смисъл и каква е разликата като се създаде без &
Мерси много и весели празници !
|
| |
|
|
|