|
|
|
| Имеются два разных текстовых файла. Например:
1| текст_1
2| текст_2
3| текст_3
4| текст_4
5| текст_5
6| текст_6
7| текст_7
и второй
4
6
3
Каким образом мне по полученным значениям из второго файла (4,6,3)
вывести строки первого файла:
4| текст_4
6| текст_6
3| текст_3
Я совсем запутался ничего не выходит. | |
|
|
|
|
|
|
|
для: Cepseu
(16.10.2005 в 19:40)
| | Можно поступить следующим образом
<?php
// Файл с информацией
$filetext = "text.txt";
// Помещаем содержимое файла в массив
$arr = file($filetext);
// В цикле выводим имена файлов и переходы
foreach($arr as $line)
{
list($index, $content) = explode("|", $line);
$temp[$index] = $content;
}
// Файл с информацией
$filetext = "index.txt";
// Помещаем индексы для вывода в массив
$ind = file($filetext);
// В цикле выводим необходимую информацию
foreach($ind as $index)
{
$index += 0;
echo $index."|".$temp[$index]."<br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(16.10.2005 в 20:01)
| | Попробовал что то ничего не выводит
А А может из-за того что переменная $filetext обоих файлов одинаково называется
Сейчас ещё попробую... | |
|
|
|
|
|
|
|
для: Cepseu
(16.10.2005 в 21:07)
| | Нет не работает. И по отдельности циклы ничего не выводят.
Например:
<?php
$filetext = "text.txt";
$arr = file($filetext); //И так $arr[] = file($filetext); тоже
foreach($arr as $line)
{
echo $line;
}
?>
|
| |
|
|
|
|
|
|
|
для: Cepseu
(16.10.2005 в 21:33)
| | Вот рабочий код:
<?
$indexfilename = "1.txt";
$resfilename = "2.txt";
### Читаем файл интексов в массив ###
$indexarray = file($indexfilename);
$indexarray = str_replace("\r\n", "", $indexarray);
### Читаем файл с описаниями ###
$tmpresarray = file($resfilename);
$tmpresarray = str_replace("\r\n", "", $tmpresarray);
$i = 0;
while($i < count($tmpresarray)) {
$temparray = explode("| ", $tmpresarray[$i]);
$tmpcount = $temparray[0];
$resarray[$tmpcount] = $temparray[1];
$i++;}
### Вывод нужных строк ###
for($i=0; $i < count($indexarray); $i++) {
$tmpcount = $indexarray[$i];
echo $resarray[$tmpcount]."<br>";}
?>
|
Если вам нужно выводить строки в формате "4| текст_4", а не просто "текст_4", то стоит заменить строку:
echo $resarray[$tmpcount]."<br>";}
|
на строку:
echo $tmpcount."| ".$resarray[$tmpcount]."<br>";}
|
Всё. | |
|
|
|
|
|
|
|
для: DDK
(16.10.2005 в 22:10)
| | Да и код тов. Хеопса корректно работает, просто вы имена файло не так подставили:
<?
// Файл со строками, которые нужно вывести (типа 1| текст_1)
$filetext = "2.txt";
// Помещаем содержимое файла в массив
$arr = file($filetext);
// В цикле выводим имена файлов и переходы
foreach($arr as $line)
{
list($index, $content) = explode("|", $line);
$temp[$index] = $content;
}
// Файл с номерами строк в ресурсном файле (2.txt)
$filetext = "1.txt";
// Помещаем индексы для вывода в массив
$ind = file($filetext);
// В цикле выводим необходимую информацию
foreach($ind as $index)
{
$index += 0;
echo $index."|".$temp[$index]."<br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: DDK
(16.10.2005 в 22:28)
| | Че то и второй скрипт у меня не заработал
не пойму в чем дело :(
Ладно буду разбираться.
Спасибо. | |
|
|
|
|
|
|
|
для: Cepseu
(16.10.2005 в 23:31)
| | Попробуйте ещё так:
<?
$indexfilename = "1.txt";
$resfilename = "2.txt";
### Читаем файл интексов в массив ###
$indexarray = file($indexfilename);
$indexarray = str_replace("\r\n", "", $indexarray);
$indexarray = rtrim($indexarray);
### Читаем файл с описаниями ###
$tmpresarray = file($resfilename);
$tmpresarray = str_replace("\r\n", "", $tmpresarray);
$i = 0;
while($i < count($tmpresarray)) {
$temparray = explode("| ", $tmpresarray[$i]);
$tmpcount = $temparray[0];
$resarray[$tmpcount] = $temparray[1];
$i++;}
### Вывод нужных строк ###
for($i=0; $i < count($indexarray); $i++) {
$tmpcount = $indexarray[$i];
echo $resarray[$tmpcount]."<br>";}
?>
|
| |
|
|
|
|
|
|
|
для: Cepseu
(16.10.2005 в 21:33)
| | >Нет не работает. И по отдельности циклы ничего не выводят.
Можете дать кусок вашего файла text.txt как есть, прикрепив его к сообщению? Какая версия PHP? | |
|
|
|
|
|
|
|
для: cheops
(17.10.2005 в 01:17)
| | Сегодня попрбовал на работе у меня там Апач и пхп на винде стоит, всё заработало.
А дома на Линуксе (в котором я недавно юзаю), разобрался в чём проблема - "права".
Большое спасибо вы мне очень помогли - оба скрипта рабочие. :)) | |
|
|
|