Всем привет! Имеется переменная (или как ее обозвать) %'Author'% , для чего она помещена в %%, почему нельзя сделать как переменную в $? Для %% существуют какие то свои функции, например подсчета количества символов в выводимом имени автора?
Такие "переменные" используются в конфигах (например yaml) либо же в тексте, например, если требуется какой-то кусок текста динамически подставлять, например %date% заменяется на текущую дату.
echo str_replace('%date%', date('d.m.Y'), $text) - так вывести, а насчет подсчета длины не понял - это надо посчитать количество символов в строке %date%?
bears: опробовал такой вариант (перевести из %% в $), но ни чего не получилось, может что не так делаю?
$str = str_ireplace("%'Authors'%", "$Authors", $str);
echo "$Authors";
Mike Ro: Давайте сначала уточним одно - чего Вы хотите добиться? Если Вы хотите получить переменную $author из %author% то что должно быть в значении этой переменной?
bears: я хочу получить любые данные из %author% и перевести их в нормальную переменную $author, что-бы дальше уже с $author делать все что угодно (подсчет, замена и тому-подобное).
Mike Ro: Тут важно понять, что %author% - это не переменная и, соответственно, у нее нет значений. Точно таким же способом, можно использовать и другие символы - /author/, ?author?, &author& и т.д. это не критично. Таким образом просто делают метки, которые заменяются на реальный текст. Пример конечно не очень, но предположим, в зависимости от региона пользователя, Вы хотите в каком то тексте указать телефон этого региона, чтобы не делать уникальный текст для каждого региона, делается так - 'бла бла бла %phone% бла бла бла'. После определения региона пользователя, Вы этот самый %phone% подменяете на реальный телефон этого региона.
bears: ну смотрите. Вот допустим %author% у нас передает имя Иван, могу-ли я это имя передать в переменную $author? Что-бы делать потом следующие операции с данным именем уже от имени переменной $author...
Mike Ro: В том то и загвоздка, что все происходит наоборот. %author% ничего не содержит, оно заменяется реальным именем автора, которое берется например из БД.
Mike Ro: Я все еще не понял, зачем это надо, но если только просто узнать количество символов в строке '%author%' - то например вот так - echo mb_strlen('%author%'); Выведет 8. Но если этот самый %author% находится в тексте, то его еще оттуда надо вытащить, тут уже нужны например регулярки. Но я даже не смогу придумать проблему, где это понадобилось бы )
bears: ну смотрите, я хочу знать, сколько символов будет в этом описание (%author%). Бывает так, что описания и нет вовсе, тогда надо скрыть данный блок. Я думал сделать условие, что если strlen == 0, то display none.
Ну Вы опять склоняете к тому, чт %author% - это переменная, но это не так. У Вас уже должна быть какая-нибудь переменная $author в которой содержится имя, вот с этой переменной и манипулируйте, и именно сореджимое этой переменной ($author) подставляется вместо %author%. Либо я не понял суть проблему и не могу объяснить, либо Вы что-то делаете не правильно, исходя из того, что по Вашей версии - %author% уже содержит какое-то значение, хотя по факту оно не может содержать, так как (еще раз повторяю) это не переменная и вообще, ни к какому-либо языку программирования не имеет отношения.