|
|
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте всем, вот интересует, как сделать макросы? Задам сразу два вопроса :) 1. Человек вводит текст типа, "Привет {Саша|Даша|Маша}", как его записать в переменную? Записать все варианты? И как сделать чтоб записывалось неограниченное количество вариантов?) 2. Как потом это вывести? То есть "Привет Саша" или "Привет Даша". Просто не могу понять, как запомнить место, где был макрос) Объясните пожалуйста, думала, так и не поняла. Заранее большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2012, 19:02:54 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Infinity~, о каких макросах вы говорите? типа как в ворде? )) храните введенные имена в файле или в БД. и выводите их потом. кол-во будет неограниченно, хранится будут все введенные варианты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 05:33:49 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Infinity~Человек вводит текст типа, "Привет {Саша|Даша|Маша}", как его записать в переменную?Если на bash, тогда как тот так: Код: sql 1. 2. 3. Вы о каком языке программирования говорите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 14:04:59 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Я о php конечно. 1. Когда человек ввел текст такого типа: "Привет {Саша|Даша|Маша}" Нужно чтоб Саша, Даша, Маша, записались в аррай, то есть в тексте не будет ограничения, макросов может быть хоть сто. Вот как это реализовать с записью значений что в скобке в аррай. Пробовала через preg_match не вышло. 2. И еще вопрос, я весь этот текст сохраняю в базу данных, как мне запомнить место где макрос был? То есть где было "{Саша|Даша|Маша}"? Большое спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 14:26:58 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Infinity~Я о php конечноНу так указывайте в теме что об нем. А то серверных ЯП гора. Infinity~Пробовала через preg_match не вышло.Показывайте, как пробовали. Примерчик сюда плиз. Infinity~весь этот текст сохраняю в базу данных, как мне запомнить место где макрос был?Во-первых, не ясно, что такое "макрос". Что Вы под этим словом понимаете. В PHP нет такого понятия. Во-вторых, опять же, пример в студию! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 14:59:53 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Вот пример: Есть такой текст: Привет друзья, мне нужно срочно {Много денег|Мало денег|Чуть денег} , помогите! Есть такое регулярное выражение: {\s*([^\r\n]+)} Оно конечно выводит: {Много денег|Мало денег|Чуть денег} Ссылка на конструктор, где делала Вот например будет такой текст: Привет {Вова|Коля}, как дела в {университете|на работе}? Так уже не будет работать регулярное выражение, вот как сделать, чтоб регулярное выражение проходилось по всему тексту, вытягивало все что в {}, и записывало его в переменную? Теперь насчет запоминания места: Возьмем в пример это: Привет {Вова|Коля}, как дела в {университете|на работе}? Я не могу так записывать в бд, мне нужно каждой {} присвоить свою переменную, то есть: Привет $Kolya_or_Vova, как дела в $v_univere_or_na_rabote ? Надеюсь Вы меня правильно поняли. Спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 17:08:32 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
По первой проблеме: Код: php 1. 2. 3. 4. Выводит: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Ваш массив в $matches[1] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 17:21:04 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
По второму вопросу - не ясно, откуда берутся имена переменных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 17:22:56 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Сам же разбор во втором случае достаточно прост. Сначала выцепляем регекспом фрагменты текста между "{" и "}", а потом експлодим их по символу "|". В итоге получаем массивы и присваиваем вашим переменным. Не ясно, как это будет происходить когда количество блоков {} в исходном тексте заранее неизвестно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 17:30:46 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
vkle, по первому спасибо большое, сейчас пробовать буду. По второму: Название не важно, хоть случайно оно генерировалось, но надо же как то запоминать место в тексте, где {} было, может Вы что то порекомендуете? Буду очень благодарна. Спасибо Вам за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 17:33:02 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
В массиве хранить. А из {} просто выкусить текст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 17:35:55 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Ну а как хранить? Если взять на примере: Привет {Вова|Коля}, как дела в {университете|на работе} Ну значения между {}, хранить будем, а вот как в массиве хранить эти места, недопоняла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 17:37:51 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
А предельно тупо - позиционно. Допустим, вышеприведенная строка после выкусывания будет выглядеть так: Код: php 1. Массив значений для нее будет такой: Код: php 1. 2. 3. 4. 5. 6. Нулевой элемент массива (тоже массив) имплодим с "|" и пихаем внутрь первой пары {}, первый - внутрь второй и так далее. В результате получаем исходную строку. Если хочется усложнить, тогда вместо {} можно использовать какие то спецобозначения, вроде $0, \1, %2 и т.п или непосредственно имя переменной с индексом, вроде $a[0]. Тогда будет соответствие чего-то с чем-то по индексу. Если конечно есть в этом нужный Вам смысл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 20:03:15 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Спасибо, суть уловила, но можно практический пример? Как с помощью implode все это заменять. Спасибо что терпите мои не совсем глубокие знания php. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 20:37:06 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Одного implode, конечно, недостаточно для восстановления исходной строки. Впрочем, эту задачу с восстановлением я сам придумал, а что нужно Вам - кроме Вас пока никто не знает. Откройте мануал по функци, там бОльшей частью на русском написано. Обычно бывают примеры использования. Пробуйте составлять алгоритм, пробуйте писать код - и будут Вам знания и опыт. А уж если чего не получится - с примером проблемы сюда :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2012, 21:22:08 |
|
||
|
[php] Макросы
|
|||
|---|---|---|---|
|
#18+
Решила проблему так: Код: php 1. 2. 3. 4. 5. 6. 7. 8. Всем большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2012, 14:57:26 |
|
||
|
|

start [/forum/topic.php?fid=23&gotonew=1&tid=1464617]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 420ms |

| 0 / 0 |
