|
|
|
|
|
для: Valick
(06.09.2010 в 17:04)
| | Ну да. Вот только читал, читал... но так и не понял - "задается число... циклом список... в браузер, от туда его копировать...", что вообще это и для чего. ) | |
|
|
|
|
|
|
|
для: sim5
(06.09.2010 в 16:30)
| | а если использовать базу данных, то вообще повсеместно наступит счастье :) | |
|
|
|
|
|
|
|
для: ment2563
(06.09.2010 в 16:09)
| | А если сделать грамотный массив, то еще проще будет. | |
|
|
|
|
|
|
|
для: .....
(06.09.2010 в 14:47)
| | Вот оно самое то. Помогли добрые люди:
$name = array();
$desc = array();
# Подключаем файл с названиями и описаниями
require ('catalog.php');
# Убираем дубликаты названий
$name = array_unique($name);
# Формируем новое содержимое файла каталога
$text ="<?PHP \r\n\r\n";
foreach($name as $namekey=>$nameval){
$text .= '$name[] = '.$nameval
."\r\n"
# Подставляется описание соответствующее названию
.'$desc[] = '.$desc[$namekey]
."\r\n"
# Если нужен разделитель между книгами, строку ниже раскомментировать
//."\r\n//#################################\r\n\r\n"
;
}
$text .= "\r\n?>";
# Записываем новое содержимое в файл
file_put_contents('catalog.php', $text);
|
| |
|
|
|
|
автор: ..... (06.09.2010 в 14:47) |
|
|
для: .....
(06.09.2010 в 14:15)
| | слегка не понял почему не работал тот код :)
<pre><?php
include('этот файл.txt');
var_dump($name);
print '<hr>';
$bool = TRUE;
foreach($name AS $k => $v){
if ($bool) {
$name=array($k => $v);
$bool = FALSE;
} else if (!in_array($v, $name))
$name[$k]=$v;
}
var_dump($name);
print '<hr>';
asort($name, SORT_STRING);
foreach(array_keys($name) AS $i) {
print '$name[] = "'. $name[$i] .'";'. "\n";
print '$desc[] = "'. $desc[$i] .'";'. "\n";
print '######### (типа разделитель)'. "\n";
}
|
| |
|
|
|
|
автор: ..... (06.09.2010 в 14:15) |
|
|
для: .....
(06.09.2010 в 13:18)
| | проверил, код не работает, попозже переделаю :) | |
|
|
|
|
автор: ..... (06.09.2010 в 13:18) |
|
|
для: ment2563
(06.09.2010 в 07:48)
| | >если это необходимо то при добавлении <?php ?>
не необходимо, если только ради сокращения кода добавить <?php ?>
<pre><?php
include('этот файл.txt');
$outname = array();
for($i=0; $i<count($name); $i++) {
if (in_array($name[$i], $outname)) {
unset($name[$i]);
// unset($desc[$i]); // необязательно
} else array_push($outname, $name[$i]);
}
var_dump($outname);
print '<hr>';
asort($outname, SORT_STRING);
foreach(array_keys($outname) AS $i) {
print '$name[] = "'. $name[$i] .'";'. "\n";
print '$desc[] = "'. $desc[$i] .'";'. "\n";
print '######### (типа разделитель)'. "\n";
}
?>
|
| |
|
|
|
|
|
|
|
для: ment2563
(06.09.2010 в 07:48)
| | Что за ужас?
Если у вас все прописано как элементы массива:
$name[] = " название чего либо ";
$desc[] = " описание этого самого чего либо ";
то это должен быть не текстовый файл, а подключаемый php. Если же в текстовом держать, то лучше сериализованный массив.
И после array_unique -> implode("\r", $array). | |
|
|
|
|
|
|
|
для: .....
(05.09.2010 в 23:13)
| | Дело в том, что мне нужно вывести содержимое текстового файла в браузер и там список должен быть без повторов. Затем просто из браузера скопировать текст и создать новый каталог без дублей. Как то так. Сам файл каталога текстовый, но в принципе если это необходимо то при добавлении <?php ?> сверху - снизу можно переименовать расширение в php.
Вот нашел такое решение:
$file1=$_SERVER['DOCUMENT_ROOT'].'/1.txt';
$file2=$_SERVER['DOCUMENT_ROOT'].'/2.txt';
$f1=fopen($file1,'r');
$f2=fopen($file2,'w');
$str_array = array();
while($str=fgets($f1,1024)){
$str_array[] = trim($str);
}
$str_array = array_unique($str_array);
foreach ($str_array as $item){
fputs($f2,$item."\r\n");
|
Но проблема здесь в том, что все здесь заносится в один массив и проверяется на дубли. В итоге после удаления одинаковых названий описания же остаются, но уже без названия. А надо чтобы описания удалялись вместе с дублями названий. Что бы все парами шло как положено. | |
|
|
|
|
автор: ..... (05.09.2010 в 23:13) |
|
|
для: ment2563
(05.09.2010 в 21:31)
| | а интересный вопрос :)
будет-ли при таком объявлении дублироваться запись
$name[] = $desc[] = " название чего либо ";
или чтобы так не было помогает-ли что-то вроде
$name[] &= $desc[] = " название чего либо "; | |
|
|
|
|