За последние 24 часа нас посетили 33534 программиста и 1819 роботов. Сейчас ищут 1554 программиста ...

Вывод только первых 10 символов.

Тема в разделе "PHP для новичков", создана пользователем htaccess, 26 сен 2009.

  1. htaccess

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

    С нами с:
    9 авг 2009
    Сообщения:
    17
    Симпатии:
    0
    Всем привет!
    Нужно вывести на экран только первые 10 символов из массива.
    Я узнал количество символов в строке :
    $nc = strlen("$datafile[$i]");
    $nc теперь содержит значение равное 19, то есть 19 символов.
    как теперь вывести только первые 10 символов из 19?
     
  2. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Вывод осуществляется операторами и функциями
    echo, print, print_r(), var_dump().

    Для того чтобы взять только 10ть символов из строки - откройте для себя функции работы со строками http://ua.php.net/manual/en/ref.strings.php
     
  3. SDR

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

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    1. строка - не массив (хотя по синтаксису ведёт себя похоже)
    2. substr
     
  4. htaccess

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

    С нами с:
    9 авг 2009
    Сообщения:
    17
    Симпатии:
    0
    ещё бы кто тыкнул пальцем на нужную, на php.net уже перерыл этот раздел.
     
  5. SDR

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

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    выше
     
  6. htaccess

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

    С нами с:
    9 авг 2009
    Сообщения:
    17
    Симпатии:
    0
    ок, сейчас попробуем.
     
  7. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Строка - это массив символов.
     
  8. SDR

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

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    Apple
    это в C :)

    в php тип string НЕ есть array
     
  9. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Почему же?
    PHP:
    1. <?php
    2.  
    3. $chars = "Hello, World";
    4.  
    5. for($i = 0; $i < strlen($chars); $i++) {
    6.     echo $chars[$i];
    7. }
    8.  
    9. ?>
    Чем не массив?
     
    mytopor нравится это.
  10. SDR

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

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    Код (Text):
    1.  
    2. $array = (1,2,3);
    3. $string = '123';
    4. var_dump($array);
    5. echo "<br>";
    6. var_dump($string);
    7. echo "<br>";
    8. print_r($array);
    9. echo "<br>";
    10. print_r($string);
    11. echo "<br>";
    12. echo (int)is_array($array);
    13. echo "<br>";
    14. echo (int)is_array($string);
    15. echo "<br>";
    16. echo (int)is_string($array);
    17. echo "<br>";
    18. echo (int)is_string($string);
    19.  
    20. strlen($array);
    последнее вообще выдаст ошибку.
    вопрос думаю снят? 8)
     
  11. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Нет.

    Ей можно манипулировать не хуже, чем массивом.
    Я не вижу причин для обратного утверждения, не смотря на тип переменной.
     
  12. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    До тех пор пока к символам можно обращаться по его индексу, она останется массивом символов.
    Само определение - масив символов - верно для любой строки.
     
  13. SDR

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

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    Apple

    1. твоим языком. тип переменной строка - не массив. тип переменной массив - не строка. ты перевод string и array знаешь?

    даже близко нет.
    массив нельзя конкатировать (хз как слово пишется)
    элементу (символу) строки нельзя присвоить ничего, кроме символа. элементу массива можно присвоить что угодно.

    это 2 совершенно разные вещи которые в частном случае ведут себя похоже
     
  14. SDR

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

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    видимо ты лингвист
    по русски может оно и так, я же говорю в терминах php
    мы не на лингвистическом и не на филосовском сайте
    а в терминах php так уж принято массивом называть перевод англиского array, а строкой перевод англиского string
    с точки зрения php array != string поэтому я и говорю, что массив != строка
     
  15. SDR

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

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    просьба модераторов вынести это в отдельный топик
    интересный холивар может получиться ))

    если конечно кто-то осмелится встать на сторону Apple ;-)
     
  16. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    SDR
    Мужик, я не первый год программирую на РНР и кое что всё-таки знаю.
    Не надо мне объяснять элементарные вещи, любая строка - это массив символов по своей сути.
    Знаешь, как РНР размещает строки в памяти? Полагаю, знаешь.
    То, что у этой переменной другой тип, никак не меняет суть любой строки, даже написанной на бумаге.
    Из неё можно вырвать любой символ, заменить или удалить.
    Удаление всей строки можно произвести её зачеркиванием или, что тоже самое, вычеркиванием каждого из символов.
    Так что суть остается такова, что любая строка всё равно массив символов.
     
  17. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Филолог, если говорить точно.
    Пока что только будущий, с 28 августа поступил.
     
  18. SDR

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

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    оно и видно, в наклонностях :)

    короче ладно. убедил. поправлюсь.
    строка - не является типом массив.

    так устроит? :)
     
  19. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Целиком и полностью =)
     
  20. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Да, о чем тут холиварить? PHP это не C.

    Apple, просто очередной кодер с претензиями.

    Запустите
    PHP:
    1. $z='abcde';
    2. $z[] = 'kkk';
    3.  
    и
    PHP:
    1.  
    2. $a=array('a', 'b', 'c', 'd', 'e');
    3.  
    4. $a[] = 'kkk';
    5.  
    И ощутите разницу...

    Строка это не массив. Все.

    P.S. раньше людей называли дураками, сейчас с говорят человек с гуманитарным складом ума.
    Филологи блин...
     
  21. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
  22. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Simpliest
    Ты мне ещё долго будешь таблицы типов показывать и объяснять то, что я без тебя знаю? =))
    Лучше расскажи что-нибудь новенькое, что подтвердит твои слова.
    А кидаться фразами все могут, но пока никто не опроверг, что набор однотипных данных, собранных воедино, представляет собой массив, где к каждому его элементу можно получить доступ напрямую, то отрицание факта бесполезно.

    И повторяю: не надо мне типы РНР в нос сувать, читать внимательней надо.
     
  23. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Лана, это можно бесконечно доказывать.
    Строка в РНР имеет свой тип, массив — свой, но понятие (определение) остается для любого набора однотипных элементов.

    Предлагаю остановиться на том, что сейчас имеем.
     
  24. SDR

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

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    Apple
    слуш, а как тот факт, что нельзя удалить произвольный элемент массива?
     
  25. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Как нельзя?
    Поясни, не представляю.
    Удалить можно любой из элементов массива.