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

Форум PHP

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

 

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

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

тема: Замена в строковом файле по id

Сообщения:  [1-10]    [11-20]  [21-25] 

 
 автор: cheops   (17.11.2004 в 22:59)   письмо автору
 
   для: sedek   (17.11.2004 в 11:12)
 

Думаю мученья подходят к концу :)))
В этом скрипте опять нет + в строке
<?php
  $voc 
preg_replace("|^[^ ] |"""$voc); 
?>

Нужно заменить на
<?php
  $voc 
preg_replace("|^[^ ]+ |"""$voc); 
?>

   
 
 автор: sedek   (17.11.2004 в 11:12)   письмо автору
 
   для: cheops   (16.11.2004 в 22:33)
 

Я уж устал!
всёравно также!

<?
if(preg_match("|^delete$|i"substr($param,0,6)) && preg_match("|^Xolod$|i"$nick))
  {
    
$fd fopen($filename"r");
    
$bufer fread($fdfilesize($filename));
    
fclose($fd);
    
$voc preg_replace("|^[^ ] |"""$voc);
    
$bufer preg_replace("|[\S]+ = $voc\n|"""$bufer);
    
$fd fopen($filename"w");
    
fwrite($fd$bufer);
    
fclose($fd);
    echo 
"CHAT.$master> Ник успешно удалён!".$menu[$rnd];
    exit();
  }
?>


http://softtime.ru/forum/read.php?id_forum=1&id_theme=803&page=1

   
 
 автор: cheops   (16.11.2004 в 22:33)   письмо автору
 
   для: sedek   (16.11.2004 в 13:23)
 

Тогда все [\d] следует заменить на [\S].

   
 
 автор: cheops   (16.11.2004 в 22:02)   письмо автору
 
   для: sedek   (16.11.2004 в 13:23)
 

ёклмн, так у нас id не цифры а набор цифр и букв!?

   
 
 автор: sedek   (16.11.2004 в 13:23)   письмо автору
 
   для: cheops   (16.11.2004 в 11:58)
 

Пишу delete X
приходит
X
Ник успешно удалён!
а в файле
DFH3J4 = xolod
LK2RD = X

   
 
 автор: cheops   (16.11.2004 в 11:58)   письмо автору
 
   для: sedek   (16.11.2004 в 11:34)
 

Хм... следует после удаления первого символа посмотреть что осталось в $voc
<?php
  $voc 
preg_replace("|^[^ ]+ |"""$voc);
  echo 
$voc."\n";

Обращая внимание на все пробелы - просто посмотреть исходный текст страницы (Opera кажется wap понимает - просмотр исходного текста Alt+F3, хотя в принципе этого наверное не нужно - у нас же text/plain).

   
 
 автор: sedek   (16.11.2004 в 11:34)   письмо автору
 
   для: cheops   (16.11.2004 в 10:44)
 

тоже самое!
Во вложении весь код!

   
 
 автор: cheops   (16.11.2004 в 10:44)   письмо автору
 
   для: sedek   (16.11.2004 в 10:15)
 

Ага, это я вчера в регулярном выражении ошибся - решил, что простое и можно не проверять :))) Вместо
<?php
    $voc 
preg_replace("|^[^ ] |"""$voc); 
?>

которое удаляет только один символ и следующий за ним пробел, следует писать
<?php
    $voc 
preg_replace("|^[^ ]+ |"""$voc); 
?>

которое уничтожит один или большее число символов и следующий за ним пробел.

   
 
 автор: sedek   (16.11.2004 в 10:15)   письмо автору
 
   для: cheops   (16.11.2004 в 01:56)
 

Толи я чтото не так делаю толи дело в другом?
Всёравно сообщение о том что удалён выводит а удалять не удаляет!
<?
else if(preg_match("|^delete $|i"substr($param,0,7)) && preg_match("|^Xolod$|i"$nick))
  {
    
$fd fopen($filename"r");
    
$bufer fread($fdfilesize($filename));
    
fclose($fd);
    
$voc preg_replace("|^[^ ] |"""$voc);
    
$bufer preg_replace("|[\d]+ = $voc\n|"""$bufer);
    
$fd fopen($filename"w");
    
fwrite($fd$bufer);
    
fclose($fd);
    echo 
"Ник успешно удалён!".$menu[$rnd];
    exit();
  }
?>

   
 
 автор: cheops   (16.11.2004 в 01:56)   письмо автору
 
   для: sedek   (16.11.2004 в 00:46)
 

Хм... но ведь в строке "DELETE " - только 7 символов... попробуйте в этом блоке семёрки на восьмерки заменить. Или вообще обработать $voc при помощи регулярного выражения - следующий код удаляет из $voc любую команду вначале параметра и пробел следующий за ней
<?php
    $voc 
preg_replace("|^[^ ] |"""$voc);
?>

В этом случае можно избежать во-первых ошибок связанных с подсчётом числа параметров, во-вторых обрабатывать $voc сразу для всех блоков. К тому же вы говорили в $voc - перевод, чёрт знает как они переводят - может там и число символов другое....

   

Сообщения:  [1-10]    [11-20]  [21-25] 

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

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