|
|
|
|
|
для: 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[] = trim($val);
?>
|
| |
|
|
|
|
|
|
| Вот такой код работает:
<?
$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
|
вроде получается два одинаковых массива, и обрабатываются одинаково, но результат разный.. | |
|
|
|
|