Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как строку файла разбить на подстроки и занести это дело в массив?
 
 автор: АКУЛА   (01.04.2006 в 18:14)   письмо автору
 
 

Нужно примерно следующее:
запись типа АКУЛА = Хороший человек занести в массив типа АКУЛА => Хороший человек.
Есть функция explode но после неё при обходе этого массива функцией foreach ключи становятся начиная с 0 (тоесть значение ключей вроде как не передаётся из строки в массив.
Не подскажете, что мне делать и как мне быть?

Заранее спасибо.

   
 
 автор: Drago   (01.04.2006 в 18:23)   письмо автору
 
   для: АКУЛА   (01.04.2006 в 18:14)
 

Если в файле таких строк несколько, то можно сделать так.

<?php
$strings 
file ("file.txt");
foreach (
$strings as $str)
{
  list (
$key$value) = explode ("="$str);
  
$array[$key] = $value;
}
echo 
"<pre>";
print_r ($array);
echo 
"/<pre>";
?>

   
 
 автор: АКУЛА   (01.04.2006 в 20:14)   письмо автору
 
   для: Drago   (01.04.2006 в 18:23)
 

Что-то нифига не понял (Я начинающий прогер)
Вот мой код:

<?php
$filename = "data.txt";
if (!file_exists($filename)){
$file = fopen($filename, "a+");
}
$baza = file($filename);
foreach ($baza as $text => $textarea){
...а дальше не знаю

Не совсем понятно почему foreach ($strings as $str) тоесть не обходит вместе ключ со значением. Вроде в книге в примере так просто.

   
 
 автор: kasmanaft   (01.04.2006 в 21:13)   письмо автору
 
   для: АКУЛА   (01.04.2006 в 20:14)
 

Вот еще пример, если не понятно :)

<?php
$string 
'Акула = хороший человек';
$strings explode ('=',$string);
$array[$strings[0]] = $strings[1];

echo 
"<pre>";
print_r ($array);
echo 
"</pre>";
?>


а ключ не использовался потому, что он попросту не нужен в данном примере... потому как ключами в массиве со строками являются просто порядковые номера, которые тут нигде не принимают участие

   
 
 автор: Drago   (01.04.2006 в 21:21)   письмо автору
 
   для: АКУЛА   (01.04.2006 в 20:14)
 

Разъясняю свой код.
Пусть есть файл file.txt с таким содержимым

АКУЛА=Хороший человек
Драго=Редиска
Еще кто-нибудь=Неизвестно какой человек


<?php
//задаем имя файла
$file_name "file.txt";
//если нужный файл существует, то...
if (file_exists ($file_name))
{
          
//заносим построчно содержимое файла в массив
    
$strings file ($file_name);
          
//обходим массив 
    
foreach ($strings as $str)
    {
            
//при помощи функции list(), которой возвращается результат работы функции explode(), создаем две переменные 
      
list ($key$value) = explode ("="$str);
            
//создаем элемент массива с ключом равным "то что было до =" и значением "то что было после ="
      
$array[$key] = $value;
    }
          
//выводим массив
    
echo "<pre>";
    
print_r ($array);
    echo 
"</pre>";
}
//если файл не существует, то так и пишем
else
  echo 
"файл не существует";
?>

   
 
 автор: АКУЛА   (02.04.2006 в 18:43)   письмо автору
 
   для: Drago   (01.04.2006 в 21:21)
 

Сэнкс

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования