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

Форум PHP

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

 

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

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

тема: прочитать строчку после ":"
 
 автор: Yakor   (08.09.2006 в 16:53)   письмо автору
 
 

Например у меня есть файл примерно такова содержания

end:sddsdd
obj:221456
Как мне например при $_GET['x']=obj выдать "221456"?
И еще.. как мне удалить всю строку начинающуюся с того же "obj"
Зарание спасибо! :)

   
 
 автор: Владимир22   (08.09.2006 в 19:52)   письмо автору
 
   для: Yakor   (08.09.2006 в 16:53)
 

$str="end:sddsdd";  // или любой текст вашего шаблона
if (eregi(":",$str))
$str = substr(strstr($str,":"),1); // читает всё после :
echo "$str";

   
 
 автор: Yakor   (08.09.2006 в 20:24)   письмо автору
 
   для: Владимир22   (08.09.2006 в 19:52)
 

Спасибо!
$str="end:sddsdd";

P.S> а как найти эту строку в файле?

   
 
 автор: Trianon   (08.09.2006 в 20:14)   письмо автору
 
   для: Yakor   (08.09.2006 в 16:53)
 

в файле могут появиться строки с одним и тем же префиксом?
И насколько этот файл большой?

   
 
 автор: Yakor   (08.09.2006 в 20:19)   письмо автору
 
   для: Trianon   (08.09.2006 в 20:14)
 

>в файле могут появиться строки с одним и тем же префиксом?
нет

>И насколько этот файл большой?
не больше 10-20 строк

   
 
 автор: Trianon   (08.09.2006 в 20:29)   письмо автору
 
   для: Yakor   (08.09.2006 в 20:19)
 

тогда имеет смысл написать что-то такое:

<? 
$file 
file('file.txt');
$list  = array();
foreach(
$file as $line)
{
    
$key '';
    list(
$key$val) = explode(':'trim($line));
    if(!empty(
$key)) 
       
$list[$key] = $val;
}

echo 
$list[$_GET['x']]; // вывод 
unset $list[$_GET['x']]; // удаление

$f fopen('file.txt''wb');
foreach(
$list as $key => $val)
    
fwrite($f"$key:$val\r\n");
?>

   
 
 автор: Yakor   (09.09.2006 в 00:30)   письмо автору
 
   для: Trianon   (08.09.2006 в 20:29)
 

Огромное спасибо!

   
 
 автор: Trianon   (09.09.2006 в 16:09)   письмо автору
 
   для: Yakor   (09.09.2006 в 00:30)
 

Несколько поспешил. Вот этот вариант более корректен.

<?
$file 
file('file.txt');
$list  = array();
foreach(
$file as $line)
{
    
$key '';
    
$line trim($line);
    if((
$idx strpos($line':')) === false)
        continue;
    
$key substr($line0$idx);
    
$val substr($line$idx+1);
    
$list[$key] = $val;
}

echo 
$list[$_GET['x']]; // вывод  
unset ($list[$_GET['x']]); // удаление 

$f fopen('file.txt''wb');
foreach(
$list as $key => $val)
    
fwrite($f"$key:$val\r\n");
?>


Разница проявляется в строках, где два и более символа ':'

   
Rambler's Top100
вверх

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