За последние 24 часа нас посетили 19614 программистов и 1662 робота. Сейчас ищут 1843 программиста ...

Глупый вопрос

Тема в разделе "PHP для новичков", создана пользователем ihar, 18 сен 2008.

  1. ihar

    ihar Активный пользователь

    С нами с:
    18 сен 2008
    Сообщения:
    7
    Симпатии:
    0
    Суть вопроса. Имеется строка $strok[$i] в текстовом файле. Символы строки разбиваются по 10. В каждом десятке символ 1 меняется местами с символом 10 и обратно. Затем и т.д . Так вот не проходит именно присваивание $strok[$i][$k+9]=$x;. Долго думает а затем вываливается в ошибку. Хотя присваивание $strok[$i][$k]=$strok[$i][$k+9]; проходит без проблем. Подскажите, пожалуйста, в чем загвоздка и как ее лучше обойти?

    for ($k=1;$k<=strlen($strok[$i]);$k=$k+10)
    {
    $x=$strok[$i][$k];
    $strok[$i][$k]=$strok[$i][$k+9];
    Почему то не работает следующее присваивание:
    $strok[$i][$k+9]=$x;
    $x=$strok[$i][$k+1];
    $strok[$i][$k+1]=$strok[$i][$k+5];
    Почему то не работает следующее присваивание:
    $strok[$i][$k+5]=$x;
    ....................
    }

    Заранее спасибо за граммотные и конкретные ответы.
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Грамотные и конкретные ответы даются лишь на грамотные и конкретные вопросы.
    Отображение всех ошибок включено?
     
  3. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а ещё можно получить ответ на вопрос практически любой кривизны за конкретные деньги. Только они должны быть очень конкретными :)
     
  4. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Для считывания символов [] скобки могут импользоваться, но для присвоения необходимо использовать {} скобки, а так же, не стоит писать такой корявый код. Код помещйте в соответствующие BBCODE теги.

    PHP:
    1.  
    2. <?php
    3. foreach($strok as $stroka)
    4. {
    5.     $splitData = str_split($stroka, 10);
    6.     foreach ($splitData as $TenBytes)
    7.     {
    8.         $temp = $TempBytes{0};
    9.         $TenBytes{0} = $TenBytes{9};
    10.         $TenBytes{0} = $temp;
    11.     }
    12. }
    13. ?>
    14.  
     
  5. ihar

    ihar Активный пользователь

    С нами с:
    18 сен 2008
    Сообщения:
    7
    Симпатии:
    0
    Спасибо БОЛЬШОЕ, neverlose, за ответ!!!!

    P.S. Luge и [vs]. Постораюсь все учесть. Грамотно и конкретно задавать свои вопросы.
     
  6. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    neverlose
    Скобки {} для работы со строками были признаны устаревшим стилем в PHP 5. Квадратные должны работать.
     
  7. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Только при чтении... При записи, интерпретатор думает что ты пытешься сделать массив, а не изменить символ.
     
  8. Anonymous

    Anonymous Guest

    neverlose
    В php6 будут только квадратные.
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Вот так
    PHP:
    1. <?php
    2. echo "Text f{$o}r sa{$mpl}e";
    нельзя будет? о_0
     
  10. Anonymous

    Anonymous Guest

    [vs], можно.
     
  11. neyr00n

    neyr00n Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    106
    Симпатии:
    0
    хохо.. сдается мне, что будет некая путаница. в чтении чужого кода =\