2016-04-26 3 views
0

Это немного сложно объяснить, но я постараюсь изо всех сил, я пытаюсь создать инструмент для редактирования описаний каналов для TeamSpeak 3, для этого вы используете функцию channeledit.php форматирование новых строк и интервалов

Пример использования: channeledit CHANNEL_DESCRIPTION = My \ sDescription

Предположительно \ S = пространство \ п = перевод строки, есть ли возможный способ использовать текстовую в PHP скрипт, чтобы он выводить строку как:

My \ sDescription \ nWelcome \ STO \ SMY \ sServer

Вместо того, появляясь как: Мой Описание Добро пожаловать на мой сервер

Если есть интервал или линия Зав aks, это убивает команду и останавливает ее работу. Может ли кто-нибудь мне немного помочь?

Код для этого:

$ имя = "Test Тест тест тест испытаний";

$ ts3_VirtualServer-> выполнить ("channeledit cid =". $ Current_cid. "Channel_description =". $ Name);

+0

После тестирования он обрабатывает пространства в порядке, только новые линии заставляют его сломаться .. не уверен, почему. – Patrick

+0

Пожалуйста, попробуйте: '$ name = str_replace (" \ r "," \\ n ", $ name);' – Hexchaimen

+0

Это ошибки с: test \ n test – Patrick

ответ

0

$ name = STR_replace ("", "/ s", $ name) $ name = str_replace ("\ n", '\ n', $ name);

+0

Не работает с новыми линиями. Я могу получить пробелы, чтобы работать нормально, а не новые строки. – Patrick

+0

Ok then $ name = str_replace ("\ n", '\ n', $ name); обратите внимание на одинарную и двойную котировку – snoopcommands

+0

1 \ n2 Ошибка 0: незаконные символы в команде 'channeledit' – Patrick

0
$name = "Test Test 
Test test test"; 
(string)$newname = str_replace(' ', '\\s', $name); 
$newname = urldecode(str_replace('%0A', "\\n", urlencode($newname))); 

Вам нужно сбежать (\) обратную косую черту (\). % 0A легче найти. Мой выход:

Test \ STest \ NTest \ STest \ STest

+0

По какой-то причине это не похоже на новые строки: Test \ n \ sTestTest \ stest \ stest – Patrick

+0

С hardcoding значение для тестирования test и т. Д. Оно работает, но при вводе текстового редактора оно не работает. – Patrick

+0

Вот почему я использовал urlencode; для изменения исходного \ n на% 0A. Он взял данные $ _GET и удостоверился, что он закодирован. Позволь мне поиграть с ним, вернись через минуту или две. – bt3of4

0

Если вы хотите заменить пробелы и переносы с буквальным \n и \s. Я бы сделал следующее:

$name = urldecode(str_replace("%0D%0A","\\n",str_replace("+","\\s",urlencode($name))));