Witam.
Mam problem z prawidłowym działaniem aplikacji, której zadaniem jest wypisanie wszystkich plików (szablon, plik .txt) w folderze (pętla while), a podczas każdego obiegu pętli, sczytywana jest nazwa (odpowiednio sformatowana), następnie otwierany jest inny plik txt (lista linków) i na podstawie nazwy znajdowana odpowiednia linijka oraz wklejana na miejsce starego w szablonie.
O ile większość jest jest już zrobiona, o tyle ugrzązłem od kilku dni nad prawidłowym działaniem funkcji strpos, która tylko za pierwszym wywołaniem działa tak jak powinna.
Jestem początkującym w temacie, jednak poproszę o skupienie się nad rozwiązaniem problemu - pewnie coś niewielkiego, ale Ja już nie mam siły :P
Z góry dzięki za pomoc.
$alinks = array('D:\\testing\\linki1.txt',
'D:\\testing\\linki2.txt',
'D:\\testing\\linki3.txt');
if($dh = opendir(tbf)){ // otwiera folder tbf
while(($file = readdir($dh)) !== false){ // wypisuje nazwy plikow
if(($file !== '.') && ($file !== '..')){ //pomija . i ..
// zczytanie nazwy pierwszego pliku w folderze
$exp = explode('.',$file); //dzieli nazwe pliku
//print_r ($exp);
//echo '</br>';
if($dindex = array_search('2014',$exp)); // sprawdza czy w nazwie znajduje sie data 2014...
elseif($dindex = array_search('2013',$exp));
elseif($dindex = array_search('2012',$exp));
elseif($dindex = array_search('2011',$exp));
elseif($dindex = array_search('2010',$exp));
elseif($dindex = array_search('2009',$exp));
elseif($dindex = array_search('2008',$exp));
elseif($dindex = array_search('2007',$exp));
elseif($dindex = array_search('2006',$exp));
elseif($dindex = array_search('2005',$exp));
elseif($dindex = array_search('2004',$exp));
elseif($dindex = array_search('2003',$exp));
elseif($dindex = array_search('2002',$exp));
elseif($dindex = array_search('2001',$exp));
elseif($dindex = array_search('2000',$exp));
elseif($dindex = array_search('1999',$exp));
//... jesli znajdzie ktoras z dat,
//to zapisuje jej klucz w tablicy dindex
echo $dindex.' : dindex</br>';
for($i = 0; $i <= $dindex; $i++){ //zczytuje nazwe oraz rok do tablicy ititle
$ititle[$i] = $exp[$i];
echo $ititle[$i].' : ititle</br>';
}
$filename = implode('.',$ititle); //filename przechowuje tytul i rok
unset($ititle);
echo $filename.' : filename</br>';
for($x = 0; $x <= count($alinks)-1; $x++){ // petla ogolna dla kazdego pliku z linkami
if(is_file($alinks[$x])){ // sprawdza czy taki plik z linkami sie znajduje
if($ffh = fopen($alinks[$x],'r')){ // otwiera plik z linkami
while ($haystack = fgets($ffh)){ // zaczyna pobierac linie textu
//echo 'Pobiera linie textu : '.$haystack.'</br>';
if(strpos($haystack,$filename) !== FALSE){ // jesli napotka tytul,
$newlink [$x] = $haystack; // to zapisuje go w tablicy
echo $newlink[$x].' : NEWLINK!</br>';
}
}fclose($ffh);
}else{
echo 'Nie udalo sie otworzyc pliku: '.$alinks[$x].'</br>';
}
}else{
echo '</br>Nie ma takiego pliku: '.$alinks[$x].'</br>';
}
}
// wkleja nowy link do szablonu
/*if($fgc = file_get_contents('D:\\testing\\tbf\\'.$file)){
$fgc = str_replace('[code]{links_1}[/code]','[code]'.$newlink[0].'[/code]', $fgc);
file_put_contents('D:\\testing\\tbf\\'.$file,$fgc);
$fgc = str_replace('[code]{links_2}[/code]','[code]'.$newlink[1].'[/code]', $fgc);
file_put_contents('D:\\testing\\tbf\\'.$file,$fgc);
$fgc = str_replace('[code]{links_3}[/code]','[code]'.$newlink[2].'[/code]', $fgc);
file_put_contents('D:\\testing\\tbf\\'.$file,$fgc);
}
*/
} // KONIEC IF'a
}
closedir($dh);
}
&&
ma pierwszeństwo przed=
i ogólnie przez takie coś należy unikać przypisania w warunkach - http://stackoverflow.com/questions/5467151/php-variable-assignment-inside-if-conditional