|
|
|
| Подскажите пожалуйста как строчку с текстового файла поднять на один уровень вверх
тоесть есть файл с содержимым
строка 1
строка 2
строка 3
как сделать чтоб получилось следующее:
строка 1
строка 3
строка 2 | |
|
|
|
|
|
|
|
для: Lastron
(20.06.2008 в 18:35)
| | Если прям так, то можно следующим образом:
<?php
$file=file('text.txt');
foreach ($file as $str)
{
$upload_str[]=$str;
}
$file=fopen('ready.txt','w');
$upload_text=$upload_str[0].'\n'.$upload_str[2].'\n'.$upload_str[1];
fwrite($file, $upload_text);
fclose($file);
?>
|
Если иначе, то скажите более подробно чего Вы хотите | |
|
|
|
|
|
|
|
для: SiM(R)
(20.06.2008 в 18:55)
| | Хотелось бы управлять расположением строчек, если надо поднять на одну вверх или на одну вниз опустить. Строчек может быть энное количество | |
|
|
|
|
|
|
|
для: Lastron
(20.06.2008 в 18:59)
| | Насколько велик файл? | |
|
|
|
|
|
|
|
для: SiM(R)
(20.06.2008 в 18:55)
| | Проверяли код?
Советую проверить. | |
|
|
|
|
|
|
|
для: Lastron
(20.06.2008 в 18:35)
| | А можно задать похожий вопрос? Как определенную строчку в файле заменить на некоторую строку-переменную?
Это, получается, тоже надо грузить текст до этой строки, после, а затем спаять то, что не меняется, с тем, что я хочу записать, и вперед, на запись! Или можно как-то проще? | |
|
|
|
|
|
|
|
для: gobseck
(20.06.2008 в 20:53)
| | Че то, как-то не очень получилось, но вот то, что насоображал...
<?php
$url=$_SERVER['PHP_SELF'];
$path='C:\AppServ\www\help\text.txt'; // место нахождения файла с строками
if ($_POST['hide']) //если запрос был отправлен, то обрабатываем его
{
$file=file($path); //открываем файл со страницами
if ($_POST['move']=='up') //если перемещаем вверх
{
if ($_POST['name']==0) //если эта самая верхняя позиция, то прекращаем перемещать вверх
{
header("Location:$url?err=Выше некуда!");
die();
}
$to_down=$file[$_POST['name']-1];
$file[$_POST['name']-1]=$file[$_POST['name']];
$file[$_POST['name']]=$to_down;
}
if ($_POST['move']=='down') //если перемещаем вниз
{
if ($_POST['name']==count($file)-1) //если эта самая нижняя строка, то прекращаем ее опускать
{
header("Location:$url?err=Ниже некуда!");
die();
}
$to_down=$file[$_POST['name']+1];
$file[$_POST['name']+1]=$file[$_POST['name']];
$file[$_POST['name']]=$to_down;
}
if (!$_POST['move'])
{
header("Location:$url?err=Не выбран путь перемещения");
die();
}
if (!isset($_POST['name']))
{
header("Location:$url?err=Не выбрана строка для перемещения");
die();
}
foreach ($file as $str)
{
$upload_text.=$str; //формируем строку из полученных перемещений
}
$file=fopen($path,'w'); //открываем этот же файл для перезаписи
fwrite($file, $upload_text);
fclose($file);
}
?>
<?php
$file=file($path);
echo $id;
echo '<html>'.$err."<form method='POST' action=$url>";
echo '<select size="'.count($file).'" name="name">'; //формируем селекты, в которых указаны все строки
$i=0;
foreach ($file as $str)
{
echo '<option value="'.$i.'">'.$str.'</option>';
$i++;
}
?>
</select><br><br>
<input name="move" type="radio" value="up">Вверх<br>
<input name="move" type="radio" value="down">Вниз<br>
<input type="hidden" name="hide" value=1>
<input type="submit" value="Отправить">
</form>
|
| |
|
|
|
|
|
|
|
для: SiM(R)
(21.06.2008 в 13:40)
| | > header("Location:$url?err=Ниже некуда!");
Согласен...:) | |
|
|
|
|
|
|
|
для: SiM(R)
(21.06.2008 в 13:40)
| | Между прочим, строки национальных алфавитов в параметрах URI следует urlencod'ить. | |
|
|
|
|
|
|
|
для: SiM(R)
(21.06.2008 в 13:40)
| | Спасибо за поддержку в данном вопросе.
Я поступил следующим образом:
<?
function OpenBaseList($string)
{
$list = fopen( $string, "r" );
while ( ! feof( $list ) )
{
$line[] = fgets( $list, 1024 );
}
fclose( $list );
return $line;
}
function upline($file,$ids,$url)
{
$array = OpenBaseList($file);
$line = ($ids-1);
if(count($array) < $line or !is_numeric($line))
{
include "./inc/templates/" . $admin_config['templates'] . "/error_pages.tpl";
}
else
{
$id = ($line+1);
$detali = $array[$id-2]; // то что выше в списке
$detali1 = $array[$id-1]; // то что есть
foreach ($array as $key => $value)
{
if($key == ($id-1))
{
$value = $detali;
}
if($key == ($id-2))
{
$value = $detali1;
}
$upload_str[]= $value;
}
$string = implode("",$upload_str);
$open = fopen($file,"w");
fwrite($open,$string);
fclose($open);
print "<meta http-equiv=refresh content='0; url=$url'>";
}
}
function downline($file,$ids,$url)
{
$array = OpenBaseList($file);
$line = ($ids-1);
if(count($array) < $line or !is_numeric($line))
{
include "./inc/templates/" . $admin_config['templates'] . "/error_pages.tpl";
}
else
{
$id = ($line+1);
$detali = $array[$id]; // следующее в списке
$detali1 = $array[$id-1]; // то что есть
foreach ($array as $key => $value)
{
if($key == ($id))
{
$value = $detali1;
}
if($key == ($id-1))
{
$value = $detali;
}
$upload_str[]= $value;
}
$string = implode("",$upload_str);
$open = fopen($file,"w");
fwrite($open,$string);
fclose($open);
print "<meta http-equiv=refresh content='0; url=$url'>";
}
}
?>
|
и вызов функций
<?
$file = "./../files/gallery_cat.dat";
$ids = @$_GET['cat'];
$url = "?show=gallery&do=gallery_edit";
downline($file,$ids,$url);
?>
|
| |
|
|
|