Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2016, 11:30   #1
tryden
Новичок
Джуниор
 
Регистрация: 10.08.2016
Сообщений: 2
Вопрос Php. Как сделать переход с конечной на первую строку?

Сделано так,
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
Код HTML:
sdf sdfsd1
test2
sdfsdf sgdf3
sdgdgdfg dgdfgdf4
test fgd5
testdfg dgdfgdf6
dgdfgdf7
Если указать строку поиска test fgd5
То выведет так:
Код HTML:
<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>
То есть если строки кончаются, то не достающие строки должно брать с самого начала.. То есть с перовой строки
Вот так:

Код HTML:
<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>
Помогите пожалуйста с решение этой проблемы... очень надо.. я слабо знаком с php.
tryden вне форума Ответить с цитированием
Старый 10.08.2016, 11:54   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Я ж тебе уже помог, всё подробно расписал:
Цитата:
$put сделай массивом, а не строкой.
По завершении цикла проверяй количество элементов в массиве $put. (sizeof)
Если элементов в массиве $put меньше, чем необходимо – добивай до нужного количества повторным проходом по $file. (for)
Когда массив будет иметь нужное количество элементов – записывай его в файл, преобразовав в строку. (implode)
Тебе совсем лениво код писать?
Тогда go в раздел «Фриланс».
Andkorol вне форума Ответить с цитированием
Старый 10.08.2016, 12:11   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если не обращать внимания на тот ужас, что Вы наворотили в коде,
то Вам может помочь такой фикс в коде:

Код:
$len=count($file);
while($k < $j) { 
    echo $file[$k % $len]; 
    $sdfsdsd = $file[$k % $len]; 
.....
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.08.2016, 12:20   #4
tryden
Новичок
Джуниор
 
Регистрация: 10.08.2016
Сообщений: 2
Хорошо

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
если не обращать внимания на тот ужас, что Вы наворотили в коде,
то Вам может помочь такой фикс в коде:

Код:
$len=count($file);
while($k < $j) { 
    echo $file[$k % $len]; 
    $sdfsdsd = $file[$k % $len]; 
.....
Спасибо, все работает как надо!
tryden вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Программа берет 1-ю строку из файла. Нужно удалить все точки, и каждую первую букву всех слов сделать заглавной. igrok111 Общие вопросы Delphi 5 13.10.2015 17:04
Как удалить первую строку текста в ячейке ac1-caesar Microsoft Office Excel 7 27.10.2013 19:45
Как в делфи сделать переход по ссылке artbotva Общие вопросы Delphi 11 06.05.2012 21:13
Как в Delphi 7 в объекте типа TDBGrid сделать первую колонку фиксированной? grh БД в Delphi 3 26.09.2010 14:32
Как игнорироть последний символ переход на новую строку Rustik2 Общие вопросы C/C++ 11 08.11.2009 23:09