Funkcja pobiera opisy filmu z portalu
FilmWeb.pl i zwraca je w tablicy. Funkcja może działać trochę wolno (zależy od łącza itp), bo musi przejść aż przez 2-3 strony. Napisałem ją dla własnych potrzeb (dodatek do mojego katalogu filmów), ale może akurat komuś się przyda... Cachowanie jest dość mało wydajne (po prostu zapisuje opisy w zserializowanej tablicy do pliku), ale w zupełności wystarczy.
Kod:
<?php
/**
* Argumenty:
* string $parTitle - tytuł filmu,
* int $year - rok produkcji,
* string $cache - opcjonalny plik cache (na opisy wcześniej szukanych filmów)
* Zwraca:
* array $plots
**/
function getPlots( $parTitle, $year, $cache = false )
{
if( $cache != false )
{
{
{
return $data[ $parTitle ];
}
else
{
foreach( $data as $name => $save )
{
{
return $save;
}
}
}
}
}
$title = preg_replace( '/^(the|el|le|a) (.+)/i', '2, 1', $parTitle );
$url1 = 'http://www.filmweb.pl/Find?query=' . urlencode( $title ) . '&category=1&submit=szukaj';
{
foreach( $data as $n => $line )
{
if( ( stripos
( $line, $title ) !== false ) and
( strpos( $line, (string
)$year ) !== false ) ) {
if( preg_match( '/href="([^"]+)"/', $line, $out ) ) {
$url2 = $out[ 1 ];
break;
}
}
if( strpos( $line, 'opisy' ) !== false ) {
if( preg_match( '/href="([^"]+)"/', $line, $out ) ) {
$url3 = $out[ 1 ];
break;
}
}
}
{
foreach( $data as $n => $line )
{
if( strpos( $line, 'opisy' ) !== false ) {
if( preg_match( '/href="([^"]+)"/', $line, $out ) ) {
$url3 = $out[ 1 ];
break;
}
}
}
}
{
if( preg_match_all( '/<li><div align="justify">(.+?)</div></li>/', $data, $out ) ) {
$plots = $out[ 1 ];
}
}
}
if( count( $plots ) > 0
) {
foreach( $plots as $n => $plot )
{
}
if( $cache != false )
{
{
{
$data[ $parTitle ] = $plots;
}
}
else
{
$data[ $parTitle ] = $plots;
}
file_put_contents
( $cache, serialize( $data ) ); }
}
return $plots;
}
?>
Przykład użycia:
<?php
print_r( getPlots
( 'Batman Begins', 2005, './plots.dat' ) ); ?>
Fixed!