За последние 24 часа нас посетили 59232 программиста и 1831 робот. Сейчас ищут 884 программиста ...

Разбор строки

Тема в разделе "Вопросы от блондинок", создана пользователем krow7, 7 ноя 2009.

  1. krow7

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

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    Хотел написать скрипт для запроса с сайта информации о текущем треке на радио, но там строка с треком в виде "Исполнитель - пеcня [Заказчик (текст пожелания)]". Как можно обрезать эту строку, чтобы осталось только "Исполнитель - Песня"?
    Спасибо.
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    В идеале - никак.
    Название песни или исполнителя может содержать теже знаки, что и у нас детерминатор (в данном случае [ ).
    Есть пара вариантов регулярных выражений, чуть попозже напишу.
     
  3. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?
    2.  
    3. $song = 'Исполнитель - пеcня [Заказчик (текст пожелания)]';
    4.  
    5. // Пробуем разобрать
    6. $song = preg_replace('/\[(.+)\]$/is', '', $song);
    7.  
    8. echo $song;
    9.  
    10. ?>
    Вот, в данном случае будет работать прекрасно, даже если присутствуют квадратные скобки во втором сегменте разбираемой строки.
    НО! Если встретится такая скобка в исполнителе или песне, то он захватит её и начнет отсчет именно с неё.
    Можно пробовать чисто по шаблону, но опять-таки, если встретим исполнителя со знаком слеша и песню со скобками, то всё упадет.
     
  4. krow7

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

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    Спасибо, помогло
    А вот еще, иногда бывает что пишут вот так "Исполнитель - Песня [заказчик]"
    Это как то можно совместить с предыдущим? То есть получается убирать содержимое квадратных скобок вместе с ними (проверил, песен, в названиях которых есть квадратные скобки, - нет)
     
  5. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Так они сейчас и убираются вместе с квадратными скобками.
    Как надо-то?
     
  6. krow7

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

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    Да я разобрался, спасибо, но еще одно но:
    просто когда пишешь echo $song отображает нормально, а когда добавляю на картинку imagettftext-функцией, то не отображает :(
    как быть?
     
  7. krow7

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

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    Помогите пожалуйста!