Php. Как сделать переход с конечной на первую строку?

topor

Новичок
Сделано так,
PHP:
<?php
$file = file("names.txt");
$search = "test fgd5";
$j = 0;
$put = '';
$i = 0;
$k = 0;
foreach($file as $v){
    if(trim($v) == trim($search)) {
        $k = $i++;
        $j = $k + 5;//количество строк после искомого слова
    }
$i++;
}
while($k < $j) {
    echo $file[$k];
    $sdfsdsd = $file[$k];
    $sdfsdsd = str_replace(' ', '-', $sdfsdsd);
        $sdfsdsd = str_replace('
', '', $sdfsdsd);
    $sdddfsdsd = $file[$k];
    $sdddfsdsd = str_replace('
', '', $sdddfsdsd);
    $put .= "<a href=\"/".$sdfsdsd."\">".$sdddfsdsd."</a>\n";//заменил $str_new на $file
    $k++;
}
$bl = $search;
$bl = str_replace(' ', '-', $bl);
file_put_contents($bl.'.txt', $put);
?>
Единственный минус, но все работает как надо
Содержимое файла names.txt
PHP:
sdf sdfsd1
test2
sdfsdf sgdf3
sdgdgdfg dgdfgdf4
test fgd5
testdfg dgdfgdf6
dgdfgdf7
Если указать строку поиска test fgd5
То выведет так:
PHP:
<a href="/test+fgd5">test fgd5</a>
<a href="/testdfg+dgdfgdf6">testdfg dgdfgdf6</a>
<a href="/dgdfgdf7">dgdfgdf7</a>
<a href="/"></a>
<a href="/"></a>
То есть если строки кончаются, то не достающие строки должно брать с самого начала.. То есть с перовой строки
Вот так:

PHP:
<a href="/test+fgd5">test fgd5</a>
<a href="/testdfg+dgdfgdf6">testdfg dgdfgdf6</a>
<a href="/dgdfgdf7">dgdfgdf7</a>
<a href="/sdf+sdfsd1">sdf sdfsd1</a>
<a href="/test2">test2</a>
 

Andkorol

Новичок
$put сделай массивом, а не строкой.
По завершении цикла проверяй количество элементов в массиве $put. (sizeof)
Если элементов в массиве $put меньше, чем необходимо – добивай до нужного количества повторным проходом по $file. (for)
Когда массив будет иметь нужное количество элементов – записывай его в файл, преобразовав в строку. (implode)
 

topor

Новичок
$put сделай массивом, а не строкой.
По завершении цикла проверяй количество элементов в массиве $put. (sizeof)
Если элементов в массиве $put меньше, чем необходимо – добивай до нужного количества повторным проходом по $file. (for)
Когда массив будет иметь нужное количество элементов – записывай его в файл, преобразовав в строку. (implode)
хм, мало знаком с php. Да и голова уже болит от кода... помоги плиз, сделай как ндо
 
Сверху