За последние 24 часа нас посетили 18635 программистов и 1599 роботов. Сейчас ищут 967 программистов ...

Обрезка строки

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

  1. cloozis

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

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    У нас есть строчка "Программирование на PHP для новичков" или "Программирование, PHP для новичков".
    Нужно из строчки выдрать "Программирование" чтоб обрезался пробел или запятая, с помощью чего это реализуется? Хэлп ми плзз :oops: :oops: :oops:
     
  2. kas1e

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

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    PHP:
    1. <?php
    2. $var_one = 'Программирование на PHP для новичков';
    3. $var_two = 'Программирование, PHP для новичков';
    4. echo substr($var_one, 0, 16)."\n<br>".substr($var_two, 0, 16);
    5. ?>
    http://jp2.php.net/substr
     
  3. cloozis

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

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    как определить сколько буков до пробела или запятой? не всегда же 0, 16 ...
     
  4. kas1e

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

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    ну... как вариант - перебор строки, пока не попадется что-либо кроме букв.

    либо эксплодом разбивать.
     
  5. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Искать первый пробел в строке, вычислять его позицию, вычислять кол-во символов до пробела.
     
  6. cloozis

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

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    Код (Text):
    1. <?php
    2. $str = 'Программирование на PHP для новичков';
    3. $i = explode(' ', $str, -1);
    4. echo $i[0];
    5. ?>
    6. <br />
    7. <?php
    8. $str1 = 'Программирование, на PHP для новичков';
    9. $z = explode(',', $str1, -1);
    10. echo $z[0];
    11. ?>
    Как их скомпоновать? Можно?
     
  7. cloozis

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

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    Получилось, благодарю за ценные советы!
    код:
    Код (Text):
    1. <?php
    2. $str = 'Давайте , посмотрим, работает или нет!';
    3. /*подсчет до зопятой*/
    4. $x = explode(',', $str, -1);
    5. $target = $x[0];
    6. /*подсчет до пробела*/
    7. $y = explode(' ', $str, -1);
    8. $target1 = $y[0];
    9. $podschet = strlen($target);
    10. $podschet1 = strlen($target1);
    11.  
    12. if($podschet < $podschet1) { $result = $target; }
    13. if($podschet > $podschet1) { $result = $target1; }
    14. echo $result;
    15. ?>
    Незаурядный код, но работает :D
     
  8. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    Кто знает что здесь не правильно???
    PHP:
    1. <?
    2. echo "" .(strpos(($fcontents,"login=")(substr($fcontents, 6, 32))));
    3. ?>
     
  9. kas1e

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

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    днк код? >.<
     
  10. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
  11. cloozis

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

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    попробуй
    Код (Text):
    1. echo "" .strpos(($fcontents,"login=")(substr($fcontents, 6, 32))));
     
  12. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    :) Понимаю..., но в пхп я новичок и многово не понимаю... я просто хочу чтоб в строке которая начинается на login= вырезало всё что после =, но в другую строку не лезло...
     
  13. kas1e

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

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    а зачем """ ."?

    я вот уже как полчаса голову ломаю и не могу понять логики, не мучайте, скажите - зачем? :(
     
  14. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    не работает... :(
     
  15. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?php
    2.  
    3. $str  = 'Программирование на PHP для новичков довольно нудый, но на то он и ';
    4. $str .= 'Программирование, PHP для новичков';
    5.  
    6. // Выдераем полностью
    7. $str = trim(str_replace('Программирование на', '', $str));
    8. $str = trim(str_replace('Программирование,', '', $str));
    9.  
    10. echo $str;
    11.  
    12. ?>
     
  16. cloozis

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

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    тогда
    Код (Text):
    1.  echo "" .(strpos(($fcontents,"login=")(substr($fcontents, 6, 32)))));
     
  17. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    cloozis
    неа... этот код вообще не правильный который написал я чуть выше...
    может нужно так:
    PHP:
    1. <?
    2. echo "" .(substr((strpos($fcontents,"login=")), 6, 32));
    3. ?>
    или так:
    PHP:
    1. <?
    2. $rest = substr((strpos($fcontents,"login=")), 6, 32);
    3. echo $rest;
    4. ?>
    или так:
    PHP:
    1. <?
    2. echo  "" .((is_int(strpos($fcontents,"login=")))? substr($fcontents,6, 32):"");
    3. ?>
    или ещё как-то... я не знаю... Помогите???
     
  18. cloozis

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

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    В общем думал думал, больше ниче умнее не додумал, может кто поможет оптимизировать?

    PHP:
    1.  
    2. $keywords = $_POST['keywords'];
    3. if($keywords) {
    4.     $y = explode(' ', $keywords, -1);
    5.     $y = explode(',', $keywords, -1);
    6.     $target = $y[0];
    7.     if($target == false) {
    8.     $y = explode(' ', $keywords, -1);
    9.     $target = $y[0]; }
    10. }
    11. if($target == false) { $target = $keywords; }
    12.  
    Не глючит, но вид какойто не приятный, поможете? Может я вообще делаю как то не в том направлении? :oops:
    Первое условие почему то глючит (когда просто пробел между словами) пришлось добавить if($target == false) { $target = $keywords; } ... нефига же не граммотно ...
     
  19. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    cloozis, опишите, пожалуйста, подробно проблему ещё раз.
    Вам нужно удалить строку или вытащить?
    Я же приводил вам пример выше, чем не устроил?

    PHP:
    1.  <?php
    2.    
    3.  $str  = 'Программирование на PHP для новичков довольно нудый, но на то он и ';
    4.  $str .= 'Программирование, PHP для новичков';
    5.    
    6.  // Выдераем полностью
    7.  $str = trim(str_replace('Программирование на', '', $str));
    8.  $str = trim(str_replace('Программирование,', '', $str));
    9.  
    10.  echo $str;
    11.    
    12.  ?>
    Опишите ещё раз проблему.
     
  20. cloozis

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

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    Нам нужно вытащить первое слово из строки!
     
  21. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    cloozis
    PHP:
    1.  
    2. <?php
    3. // Объявлем строку
    4. $String = 'Программирование, программирование и ещё раз программирование';
    5. // Удаляем ненужные нам символы
    6. $TmpString = str_replace (',', '', $String);
    7. $TmpString = str_replace (':', '', $String);
    8. // Дёргаем
    9. $RealString = explode (' ', $TmpString);
    10. // Выводим
    11. echo $RealString[0];
    12. ?>
    13.