Перейти к содержимому

Сервис обмена электронных валют


Чуть-чуть изменить условия выполнения скрипта)

#1 alexp21

alexp21
  • Пользователь
  • 20 сообщений
  • Репутация: 0
0

Отправлено 29 Ноябрь 2011 - 18:00

Подскажите как поменять условия в php скрипте, он выполняет ф-цию вставки данных после заданного кол-ва символов дойдя до перввой попавшейся на пути "." - точки,
а мне нужно чтоб он делал это вставку после ". " - точки с пробелом, пробовал поставить так в условиях но так скрипт не работает, подскажите пожалуйста как правильно.
Вот код скрипта...
@$fp = fopen("text.txt", "r");
if (!$fp) {
echo "Выберете файл для чтения";
exit();
}
while(!feof($fp)) {
$text = fgets($fp);
$s=500;

if (strlen($text) < 500) {
echo $text;
}

else {

for ($s; $s <= strlen($text); $s++) {

if [b]($text[$s] == '.') [/b] {
$text = substr_replace($text, $block, $s+1, 0);
echo $text.'<br />';

break;
}

}
}
$output .= $text;
}

 

 

  • 0

#2 Maverick

Maverick
  • Модератор
  • 87 сообщений
  • Репутация: 11

Отправлено 29 Ноябрь 2011 - 19:07

Можно попробовать так:

if ($text[$s] == '.\n') {

или так
if ($text[$s] == '.\t') {


Хотя эти символы отвечают за перенос строки и табуляцию, может получится с пробелами.

Вот краткий список символов:
" " (ASCII 32 (0x20)), символ пробела.
"\t" (ASCII 9 (0x09)), символ табуляции.
"\n" (ASCII 10 (0x0A)), символ перевода строки.
"\r" (ASCII 13 (0x0D)), символ возврата каретки.
"\0" (ASCII 0 (0x00)), NUL-байт.
"\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.


  • 0

#3 alexp21

alexp21
    Topic Starter
  • Пользователь
  • 20 сообщений
  • Репутация: 0

Отправлено 29 Ноябрь 2011 - 19:30

Неа не получилось...Он почему-то не понемает если вставить больше одного символа в условия поиска...


  • 0

#4 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 29 Ноябрь 2011 - 23:01

@$fp = fopen("text.txt", "r");
if (!$fp) {
echo "Выберите файл для чтения";
exit();
}
//искомая "точка с пробелом" или любая другая подстрока для определения места вставки
$needle = '. ';
while(!feof($fp)) {
$text = fgets($fp);
$s=500;
if (strlen($text) < 500) {
echo $text;
}
else {
//определяем место вставки блока
$pos = strpos($text, $needle);
//если оно существует, то вставляем в $text $block в это место со смещением на длину строки $needle
if ($pos) {
$text = substr_replace($text, $block, $pos+strlen($needle), 0);
}
echo $text . '<br />';
}
$output .= $text;
}

  • 0


Оформление форума – IPBSkins.ru