Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dopasowanie nazw
Forum PHP.pl > Forum > PHP
Gonzo
Otóż mam bazę nazw filmów. Na serwerze mam zauplodowane pliki, których nazwy mają zostać dopasowane do wpisów w bazie nazw. Sorka, że to tutaj piszę, ale już mi się w oczach mieni od tego kodu biggrin.gif.

Nie wiem, gdzie się pomyliłem, ale coś musiałem schrzanić, bo serwer (apache) wywala mi informację, że został przekroczony maksymalny czas wykonywania skryptu. Założę się, że popełniłem gdzieś strasznie głupi błąd smile.gif.

[php:1:b01b6edfa1]
<?

// Wczytanie listy plikow
$folder = opendir('/home/divxzone/public_html/napisy/do_obc/pliki');
while($file = readdir($folder))
if($file != '.' && $file != '..') {$pliki[] = $file;}
closedir($folder);

include('php.php');

$napisy = otworz('napisy/do_obc/baza.dat', 1);
$nazwy = otworz('napisy/do_obc/nazwy.dat', 1);

// Znalezienie niezarejestrowanych plikow
for($i=0; $i<sizeof($pliki); $i++)
{
$jest = false;
for($in=0; $in<sizeof($napisy) && $jest==false; $in++)
if($napisy[$in][3] == $pliki[$i]) {$jest = true; $nr = $in;}
if($jest == false) $brak[] = substr($pliki[$i], 0, -4);
}

for($i=0; $i<sizeof($brak); $i++)
{
$brak[$i] = str_replace('-pl', '', $brak[$i]);
$brak[$i] = str_replace('-pl2', '', $brak[$i]);
$brak[$i] = str_replace('_pl', '', $brak[$i]);

$znak = 'nic';
for($in=0; $in<strlen($brak[$i]) && $znak=='nic'; $in++)
{
switch($brak[$i][$in])
{
case '_': $znak = '_'; break;
case ' ': $znak = ' '; break;
}
}

if($znak == 'nic')
{
// Wybieramy nastepny wiersz
for($in=0; $in<sizeof($nazwy); $in++)
{
$jest = 0;

// Sprawdzenie, czy slowo znajduje sie w aktualnym elemencie
$ok = false;
for($ind=0; $ind<=strlen($nazwy[$i][0]) - strlen($brak[$i]) && $ok==false; $ind++)
{
$ile = 0;
$pol = substr($nazwy[$i][0], $ind, strlen($brak[$i]));
$oryg = substr($nazwy[$i][1], $ind, strlen($brak[$i]));
$pol = znaki($pol);
$oryg = znaki($oryg);

if($pol == znaki($brak[$i]) || $oryg == znaki($brak[$i]))
{
$ok = true;
$ile++;
$dopas[$ile][0] = $brak[$i];
$dopas[$ile][1] = $nazwy[$in][0];
$dopas[$ile][2] = $nazwy[$in][1];
echo $dopas[$ile][0] . ' - ' . $dopas[$ile][1] . ' - ' . $dopas[$ile][2] . "<br>n";
}

}
}
}
else
echo "$brak[$i] - nie dopasowanon";
// Tutaj bedzie wyszukiwanie w razie tablicy (pozniej sie dorobi)
}

?>[/php:1:b01b6edfa1]
rmn
na 90% ktoras z petli sie nie konczy..smile.gif

jak bys mogl to dolacz jeszcze zrodlo php.php

wydaje mi sie ze blad znajduje sie w php.php
Gonzo
Hmm, no nie wiem, podaję użyte funkcje z php.php:

[php:1:37676f54a0]<?
function otworz($sciezka, $exp)
{
$file=fopen($sciezka, r);
flock($file, 1);
$waga=filesize($sciezka);
$plik=fread($file, $waga);
flock($file, 3);
fclose($file);
$tab=explode("rn", $plik);

if($exp == 1)
{
for($i=0; $i<sizeof($tab); $i++)
{
$tab[$i] = explode('||', $tab[$i]);
$tab[$i][sizeof($tab[$i])-1] = rtrim($tab[$i][sizeof($tab[$i])-1]);
}
}

return($tab);
}

function znaki($string)
{
$trans = array(';' => '', '>' => '', '<' => '', '!' => '', '@' => '', '#' => '', '$' => '', '$' => '', '%' => '', '^' => '', '&' => '', '*' => '', "'" => '', ' ' => '.', '/' => '', '?' => '', ':' => '', '(' => '', ')' => '', '+' => '', '-' => '', ',' => '', '!' => '', 'ˇ' => 'a', 'Ć' => 'c', 'Ę' => 'e', 'Ł' => 'l', 'Ń' => 'n', 'Ó' => 'o', '&brvbar;' => 's', 'Ż' => 'z', '&not;' => 'z', '&plusmn;' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', '&para;' => 's', 'ż' => 'z', 'Ľ' => 'z');

$string = strtolower($string);
$string = strtr($string, $trans);

return($string);
}
?>[/php:1:37676f54a0]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.