В подключаемом php-скрипте НЕ РАБОТАЮТ функции обработки строк.

Тема в разделе "Решение проблем с использованием программы", создана пользователем Татьяна, 25 янв 2014.

  1. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Использую последнюю на данный момент версию программы - 9,25. Подключаю PHP-скрипт с помощью макроса PHP_SCRIPT. В скрипт передаю текст с HTML-тегами, чтобы опработать его. Однако ни одна стандартная функциия PHP для работы со строками не работает. Хотя те же функции в 3-й версии программы отлично работали. Например, не работают или некорректно работают функции strlen, strip_tags, strpos, substr.
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте!

    Уверен, ошибка не в программе!
    Программа прекрасно передает данные скрипту.
    Вам нужно разобраться в самом скрипте. Может там какие-то ошибки допускаете.
    Вот посмотрите эту тему http://forum.sbfactory.ru/showthread.php?p=8429#post8429, я туда сегодня выложил пример скрипта, который благополучно получает из программы текст и так же благополучно возвращает его.

    Можете попробовать выложить ваш скрипт сюда, и может кто-нибудь разберется с ошибками (так как я пхп не знаю). Но я еще раз рекомендую просто разобраться в самом скрипте.

    Спасибо, что обратились. Будем рады видеть вас снова. Хорошего дня!
     
  3. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Строку то возвращает, но вот попробуйте вернуть, например, длину строки с помощью функции strlen. Правильно вернет?
     
  4. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Конкретный мой пример. Текст "Comfy sneaker-boot in canvas, from Jeffrey Campbell. Fitted with a textured rubber heel + platform for extra support and traction.<br /><br /><strong>CONTENT + CARE</strong><br />- Cotton, rubber, mixed metal<br />- Spot clean<br />- Imported<br /><br /><strong>SIZE</strong><br />- Heel: 4""</div></div></div>"

    Передаю в скрипт
    <?php

    $description = $_POST["data"];

    echo $description;

    ?>

    Все правильно - возвращает строку. Далее пытаюсь узнать длину строки - код

    <?php

    $description = $_POST["data"];

    echo strlen($description);

    ?>

    Возвращает 17 - хотя длина строки как видите далеко не 17.
     
  5. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Это все сейчас в 8 версии делаю, потому как в 9 вообще не пойму что происходит.
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Не знаю, что вы там не так делаете. А понимать, что происходит всегда надо!

    У меня все работает!

    Вот прикрепил проект, убедитесь сами.
    А вот и код скрипта:
    Кодировка скрипта utf-8

    С вашим текстом возвращает длину 310! Все верно! Хотя, отмечу вот еще что, функция strlen в PHP у меня считает один русский символ за два!

    Надеюсь, что я вам помог. Обращайтесь! :bow:
     

    Вложения:

  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Да и вот еще. Для вычисления длины текста можете воспользоваться макросом CHARCOUNT...
     
  8. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Если нужны еще какие-либо функции, как альтернатива PHP-скрипту, можете предложить, я с радостью выслушаю.
    Спасибо!
     
  9. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Функцию вычисления длиня строки для примера взяла, чтоб объяснить как именно функции у меня не работают. А вообще мне перевод текста этого надо сделать.
     
  10. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Смотрите проект, который я прикрепил выше. Как функция, так и скрипт работают. Надеюсь, найдете ошибку у себя.

    С уважением к вам, Сергей.
     
  11. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Да, спасибо. Буду разбираться.
     
  12. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Подскажите, нет ли в программе аналогов таких функций PHP для обработки строк - как strpos Ссылки недоступны для гостей и substr Ссылки недоступны для гостей ?
     
  13. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Макрос COPY
     
  14. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    Возможно на 17-ом символе текст прерван переходом строки, надо в таком случае для этой границы в "дополнительные настройки границ" отметить пункт "в одну строку" и не помешало бы для уверенности добавить тут же в "поиск-замена"

    Код:
    "{br}| "
    "re:([\r\n]{1,})| "
    без кавычек (это чтоб пробел виден был, потому поставил)
     
  15. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Этот макрос обрезает строку с нужной позиции. Но сначала надо позицию определить. Может быть можно сделать макрос типа этой функции? Ссылки недоступны для гостей Возвращает позицию первого вхождения подстроки, то есть находит позицию, с которой строку можно будет обрезать, или возвращает false если такой подстроки нет.
     
  16. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Спасибо за совет, но не помогла - в чем-то еще проблема видимо (
     
  17. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Такая функция имеется.
    Следует читать хелп Ссылки недоступны для гостей =), пожалуйста...
    С уважением к вам, Сергей.
     
  18. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Вот выдержка из справки, если у вас останутся вопросы - обращайтесь. С радостью вам поможем!
     
  19. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Я прочитала хелп очень внимательно. Там написано [COPY:от какого по счету символа копировать|сколько символов скопировать]текст[/COPY] (обрезка лишних символов текста (скопирует часть текста и вставит ее вместо макроса)) То есть надо знать точную позицию по счету от начала строки, чтобы обрезать строку. Однако у меня несколько разных описаний и везде обрезать надо с разного по счету символа. В средине текста есть слово, начиная с которого мне надо сделать перевод. И это слово в разных описаниях на разной позиции стоит.
     
  20. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    В PHP есть функция strpos (ссылку на которую я как раз давала) которая находит позицию определенной подстроки в строке. Если бы был аналогичный макрос, я сначала смогла бы найти позицию подстроки в строке, а потом уже с этой позиции обрезала бы текст с помощью макроса COPY. Как-то так я себе это представляю. Если вы знаете другие варианты решения задачи - напишите, буду благодарна.
     

Поделиться этой страницей