|
|
|
|
|
для: s1271tvg
(25.08.2004 в 12:08)
| | Вот а теперь вобще самое то что надо.
Еще раз спасибо. | |
|
|
|
|
|
|
|
для: Игорь
(25.08.2004 в 12:02)
| | Точку я специально поставил но убрать ее просто в регулярном выражении она стоит после "\\1." вот эту точку убираешь и все. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(25.08.2004 в 09:32)
| | Немного не так работает,
но все равно за помощь и идею спасибо. | |
|
|
|
|
|
|
|
для: s1271tvg
(25.08.2004 в 09:08)
| | Да то что нужно, работает.
Только точка в конце ставится, а ставить не нужно, но это мелочь,
спасибо за помощь. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(25.08.2004 в 09:32)
| | да у меня тоже все сделано так что работает с приведенными строками, если формат будет другой то нужно будет немного поменять регулярное выражение. | |
|
|
|
|
|
|
|
для: s1271tvg
(25.08.2004 в 09:08)
| | Во, классно! А я поленился регулярное выражение писать. | |
|
|
|
|
|
|
|
для: Игорь
(25.08.2004 в 02:59)
| | 1. Если цифры всегда идут в начале строки и их разделяет пробел и
2. Если скобки всегда идут в коце строки,
то можно сделать вот так.
<?
// Это файл куда записываются результаты обработки
$file = fopen ("text2.txt","w+");
if ($file)
{
// Считываем содержимое в массив, разбиение происходит по строкам
$file_array = file("text.txt");
// Записываем массив обратно в файл
foreach ($file_array as $value)
{
// Убираем цифры в начале строки
$temp = substr($value, strpos($value," "), strlen($value));
// Убираем скобки в конце строки
if (strpos($temp,"(")) $temp = substr($temp, 0, strpos($temp,"(")-1)."\r\n";
// Записывем обработанную строку в файл
fwrite ($file, $temp);
}
fclose ( $file);
// Выводим на экран результаты обработки
echo "<br><br>";
$file_array = file("text2.txt");
foreach ($file_array as $value)
{
echo $value."<br>";
}
}
else
{
echo("Ошибка открытия файла");
}
?>
|
Если условия не такие "четкие", тогда придется придумывать регулярное выражение для поиска. | |
|
|
|
|
|
|
|
для: Игорь
(25.08.2004 в 02:59)
| | ну собственно говоря кое что получилось. Попробуй, потести, если подойдет то будет хорошо!
<?php
$file = "proba.txt";
$fh = fopen ($file, "r+");
while (!feof ($fh))
{
$line = fgets ($fh, 4096);
$line = preg_replace("/\d{1,}\s([^\(]*)\s\(?.*/","\\1.",$line);
print $line."<br>";
}
fclose($fh);
?>
|
так надежнее должно работать | |
|
|
|
|
|
|
| Подскажите где в коде ошибка:
Пытаюсь убрать цифры в начале строки.
файл proba.txt
107 Разное
108 Экскурсии и туризм
109 Пищевые продукты
3202 9-этажный жилой дом со встроенными помещениями (Автор: Молчанова Т.А.)
16734 The Tower of London (Автор: Репка Николай)
3206 Автобусная остановка
файл index.php
<?
$file = "proba.txt";
$fh = fopen ($file, "r+");
while (!feof ($fh))
{
$line = fgets ($fh, 4096);
$line1 = strstr($line, ' ');
print $line1."<br>";
}
fclose($fh);
?>
Выдает что-то не то.
И как продолжение хотел бы сделать следующее, что бы удалялся автор, если есть.
То есть, чтобы искало скобки и удаляло их вместе с содержимым.
Вобщем, что бы в итоге обработки файла получилось следующее:
результат:
Разное
Экскурсии и туризм
Пищевые продукты
9-этажный жилой дом со встроенными помещениями
The Tower of London
Автобусная остановка
Подскажите плиз. | |
|
|
|
|