Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Примеры использования объектной модели в PHP.


Нахождение ссылок и разбор относительных и прямых.


<?php
define
("MY_HOST""htmlweb.ru");
$doc = new DOMDocument();
$doc->loadHTMLFile("http://htmlweb.ru/index.php");
$links $doc->getElementsByTagName("a");
for (
$i 0$i $links->length$i++){
    
$preparedLink MyLink(MY_HOSTparse_url($links->item($i)->getAttribute("href")));
    
$links->item($i)->setAttribute("href"$preparedLink);
}
echo 
$doc->saveHTML();
 
function 
MyLink($MyHost$PLink$Scheme "http://"){
    if(!isset(
$PLink["host"])){
        
$PLink["host"] = $MyHost;
    }
    
$path $PLink["path"] ? $PLink["path"] : "";
    
$query $PLink["query"] ? "?{$PLink["query"]}"";
    
$fragment $PLink["fragment"] ? "#{$PLink["fragment"]}"";
    return 
$Scheme $PLink["host"] . $path $query $fragment "\n";
}  
?>
Скопировать в буфер

Сначала мы выбираем из документа все ссылки (точнее их аттрибут href). С помощью функции приводим их все к абсолютному виду и записываем обратно в аттрибуты href. На выходе получаем документ, где все относительные ссылки заменены на абсолютные с хостом, указанным в константе MY_HOST.

Удаление всех скриптов(<script>) из кода


<?php
$doc 
= new DOMDocument();
$doc->loadHTMLFile("http://forum.codenet.ru/showthread.php?t=38806");
$all $doc->getElementsByTagName("script");
for (
$i 0$i $all->length$i++){
    
$all->item($i)->remove;
}
?>
Скопировать в буфер


Формирование списка активных ссылок на основании содержимого каталога

Этот скрипт используется для формирования списка примеров на этом сайте:


<?php
$path 
dirname(__FILE__);
$dh opendir$path ) or die ( "Не удалось открыть каталог ".$path );
while ( 
$f readdir$dh ) ) { 
if (!(
substr($f,-4)=='.php') || $f=="index.php") continue;    // исключаю картинки и текущий файл
   // Загрузить документ в массив
   
$arr file($path.'/'.$f);
   if ( !
$arr ) die ("Page not found!");
   
// Преобразую массив в строку
   
$str join""$arr );
   
// Взять только то, что находится между тегами <title> и </title>
   
if (preg_match('|<title.*?>(.*)</title>|sei'$str$arr)) $title $arr[1];
   echo 
'<a HREF="'.$f.'">'.$title."</a><br>\n";
   }

?>
Скопировать в буфер

Определние кодовой страницы и преобразование полученной с помощью Curl-запроса кода в кодировку UTF-8


<?php
$ch
curl_init($url);
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($ch,CURLOPT_VERBOSE,1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);

$htmlcurl_exec($ch);
$html1curl_getinfo($ch);

if (
$html1['content_type']){
    
$arrexplode('charset=',$html1['content_type']);
    
$csethdrstrtolower(trim($arr[1]));
} else
    
$csethdrfalse;


$csetfalse;
$arr= array();

if (
preg_match_all('/(<meta\s*http-equiv="Content-Type"\s*content="[^;]*;\s*charset=([^"]*?)(?:"|\;)[^>]*>)/i',$html,$arr,PREG_PATTERN_ORDER)){
    
$csetstrtolower(trim($arr[2][0]));
    if (
$cset!='utf-8'||$cset!=$csethdr){
        
$newstr_replace($arr[2][0],'utf-8',$arr[1][0]);
        
$htmlstr_replace($arr[1][0],$new,$html);
        
$cset$csethdr;
    } else 
        
$csetfalse;

    if (
$cset=='utf-8'$csetfalse;
}
unset(
$arr);
if (
$cset){
    
$htmliconv($cset,'utf-8//IGNORE',$html);
}
unset(
$cset);

$html=preg_replace('/<head[^>]*>/','<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
'
,$html);

$dom= new DOMDocument();
$dom->loadHTML($html);

?>
Скопировать в буфер

© Copyright 2008-2012 by KDG