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

Форум Регулярные Выражения

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

 

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

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

тема: Удаление номера строки
 
 автор: Logree   (17.11.2008 в 13:30)   письмо автору
 
 

Вот у меня файл формат которого
1 ;№ОЛОДЛ
2 ля;№*)
3 дядядя
...
2004 gd;lfglfgl

т е сначала идёт номер строки а дальше через пробел сама строка...

кто нибудь может написать скрипт для удаления номеров строк...?

  Ответить  
 
 автор: Николай2357   (17.11.2008 в 16:32)   письмо автору
 
   для: Logree   (17.11.2008 в 13:30)
 

Кто нибудь наверное может...
Всех номеров, выборочно номеров или строк под нужными номерми?

  Ответить  
 
 автор: Николай2357   (17.11.2008 в 19:57)   письмо автору
 
   для: Николай2357   (17.11.2008 в 16:32)
 

Ответа я не дождался, получайте все три варианта.
<?php 
//
$a = isset($_POST['a'])?$_POST['a']:@file("text.txt");

if(
$_POST['b'])
@
file_put_contents("text.txt",$a);

if(
$_POST['c'])
{
$a null;
$mas file("text.txt");

    for(
$i=0;$i count($mas);$i++)
    {
            if(!@
in_array(($i+1),$_POST['delet']))
        
$a .= $mas[$i];    
    }
    @
file_put_contents("text.txt",$a);

}

if(
$_POST['d'])
{
$a null;
$mas file("text.txt");

    for(
$i=0;$i count($mas);$i++)
    {
            if(@
in_array(($i+1),$_POST['delet'])||$_POST['delet_num'])
        
$a .= preg_replace("#(\d+?)\s(.*)#i","$2",$mas[$i]);
        else 
        
$a .= $mas[$i];    
    }
    @
file_put_contents("text.txt",$a);

}
if(
$a)
{    
$mas file("text.txt");

    for(
$i=0;$i count($mas);$i++)
    {    
$input "<br>
<input name='delet["
.($i+1)."]' value='".($i+1)."' type='checkbox'/>".$mas[$i]."\n\r";

$text_edit .= $input;
$input null;

    }
}
?>
<form action="?" method="post">
<?
if($text_edit)
echo 
$text_edit."<br>
<input name='c' type='submit' value='Удалить строки' />
<br><input name='d' type='submit' value='Удалить номера' />(Все)<input name='delet_num' type='checkbox'/>
</form>"
;
else
echo
"<textarea name='a' cols='30' rows='10'>
</textarea>
<input name='b' type='submit' value='Записать в файл' />
</form>"
?>

  Ответить  
 
 автор: Logree   (20.06.2009 в 10:32)   письмо автору
 
   для: Николай2357   (17.11.2008 в 19:57)
 

/

  Ответить  
 
 автор: AcidTrash   (17.11.2008 в 21:18)   письмо автору
 
   для: Logree   (17.11.2008 в 13:30)
 

>т е сначала идёт номер строки а дальше через пробел сама строка...
Если надо удалить только номера.
<?php
$text
=file_get_contents("text.txt");
$out=preg_replace("#\d+\s#s""",$text);
print 
$out;
?>

  Ответить  
 
 автор: Valick   (17.11.2008 в 21:33)   письмо автору
 
   для: AcidTrash   (17.11.2008 в 21:18)
 

Это удалит только номера вначале строки, или вообще все номера в файле?
Да и ктому же помоему автору надо сохранить порядок строк, а ваш код всё в одну строку сгребает.
З.Ы. проверил... удаляет все
З.Ы. у Николая та же проблема... удаляются не только номера строк, но и все номера в строке

двойки обоим))

  Ответить  
 
 автор: AcidTrash   (17.11.2008 в 22:04)   письмо автору
 
   для: Valick   (17.11.2008 в 21:33)
 

>Да и ктому же помоему автору надо сохранить порядок строк
А вот если автор это напишет, то тогда и посмотрим.

P.S. Не люблю, а как может быть. Написано конкретно, а догадываться как может быть или, как автор хочет лицезреть результат, не собираюсь. Я не экстрасенс. :)

>З.Ы. проверил... удаляет все
Каков пример, таков ответ. Или надо опять догадываться, что может быть, а чего не может. :)

  Ответить  
 
 автор: Valick   (17.11.2008 в 22:07)   письмо автору
 
   для: AcidTrash   (17.11.2008 в 22:04)
 

ну до экстрасенса мне тоже далеко, но то что строка начинается с цифры (номер), а далее в ней может быть всё что угодно... необходимо учитывать.

  Ответить  
 
 автор: Valick   (17.11.2008 в 22:12)   письмо автору
 
   для: AcidTrash   (17.11.2008 в 22:04)
 

Или надо опять догадываться
кто нибудь может написать скрипт для удаления номеров строк...?

А что тут догадываться?))

  Ответить  
 
 автор: AcidTrash   (17.11.2008 в 22:19)   письмо автору
 
   для: Valick   (17.11.2008 в 22:12)
 

Хорошо, добавим модификатор m и ^, устраивает?
$out=preg_replace("#^\d+\s#sm", "",$text); 

  Ответить  
 
 автор: Valick   (17.11.2008 в 22:24)   письмо автору
 
   для: AcidTrash   (17.11.2008 в 22:19)
 

Понятия не имею.. я ещё не приступал к изучению рег выражений)

  Ответить  
 
 автор: Николай2357   (17.11.2008 в 22:52)   письмо автору
 
   для: Valick   (17.11.2008 в 22:24)
 

>двойки обоим))
будем стараться, сенсей! :)))))) C модификатором m работает, я проверил.

  Ответить  
 
 автор: Valick   (17.11.2008 в 23:04)   письмо автору
 
   для: Николай2357   (17.11.2008 в 22:52)
 

не ошибается только ток кто ничего не делает))
вы верно сказали: в муках рождается истина... :))
а "сомнения укрепляют города"))

  Ответить  
 
 автор: AcidTrash   (18.11.2008 в 21:29)   письмо автору
 
   для: Valick   (17.11.2008 в 23:04)
 

>не ошибается только ток
Это точно, как ток ампер 100 вставит, точно не ошибётся :)

>двойки обоим))
Очень опрометчивое высказывание.

  Ответить  
 
 автор: Logree   (20.06.2009 в 10:33)   письмо автору
 
   для: AcidTrash   (18.11.2008 в 21:29)
 

Спасибо всем кто откликнулся :)

  Ответить  
Rambler's Top100
вверх

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