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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: не работает foreach с файлами

Сообщения:  [1-3] 

 
 автор: RV   (06.07.2005 в 12:25)   письмо автору
 
   для: cheops   (06.07.2005 в 12:14)
 

о. спасибо. сам бы не догадался.

   
 
 автор: cheops   (06.07.2005 в 12:14)   письмо автору
 
   для: RV   (06.07.2005 в 12:00)
 

если файл users.txt создавался в Windows, то перевод строки осуществляется при помощи \r\n, в отличие от UNIX на который ориентируется функция explode, в котором перевод строки осуществляется при помощи \n. Т.е. вместо fff в $search[1] оказывается строка fff\r, последний символ является невидимым, поэтому обнаружить его не просто, чтобы решить проблему, замените строку
<?php
 $info
[] = $val;
?>

на
<?php
 $info
[] = trim($val);
?>

   
 
 автор: RV   (06.07.2005 в 12:00)   письмо автору
 
 

Вот такой код работает:

<?
$test 
= array("www:fff" "ddd:dfdf" "dfgfgfgfg:fggfg");
foreach (
$test as $key)
{
  
$search explode(":" $key);
  if (
$search[0] == "www")
  {
    echo 
"WWW";
  }
  if (
$search[1] == "fff")
  {
    echo 
"fff";
  }
}
?>

и в данном случае выводит WWWfff
а вот такой код нет:

<?
$filename 
"users.txt";
$sourse file($filename);
if (!
$sourse)
{
    die (
'Can\'t open file users.txt');
    
}
else 
{
    foreach (
$sourse as $val)
    {
        
$info[] = $val;
    }
}


foreach (
$info as $key)
{
    
$search explode(":" $key);
    if (
$search[0] == "www")
    {
        echo 
"WWW";
    }
    if (
$search[1] == "fff")
    {
        echo 
"fff";
    }
}        
?>

и выводит только WWW
users.txt

www:fff
ddd:dfdf
dfgfgfgfg:fggfg

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

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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