Перейти к содержимому


Склонение имени и фамилии и т.п.


Сообщений в теме: 12

#1 Gnome

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 29 Ноябрь 2013 - 20:07

вопрос: кто нибудь пробовал сделать?
есть открытый сервис от яндекс (и не только) для того что бы склонять имена, фамилии и т.д.:

каким образом мне ей воспользоваться? можно ли использовать пользовательские функции? моет быть кто то уже имеет опыт склонять?

function inflect ( $name ) {

// Building Request URL
$url = http://export.yandex.ru/inflect.xml?name='.urlencode($name);

// Processing CURL Request
$curl = curl_init( $url );
curl_setopt( $curl, CURLOPT_USERAGENT, Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.6.30 Version/10.61 ); // Just for fun, or ...
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
$result = curl_exec( $curl );
curl_close( $curl );

// Preparing Inflections
$cases = array ();
preg_match_all( #\<inflection\s+case\=\"([0-9]+)\"\>(.*?)\<\/inflection\>#si', $result, $m );

// Creating Inflection List
if ( count($m[0]) ) {
foreach ( $m[1] as $i => &$id ) {
$cases[ (int) $id ] = $m[2][$i];
} unset ( $id );
} else return null;

// Sending Request Back to User
if ( count( $cases ) > 1 ) {
return $cases;
} else return false;

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Ноябрь 2013 - 13:40

Пользовательские функции можно включать в файл include/function_custom.php, который можно добавить через менеджер внешних файлов. Если файл добавлен, он автоматически подключится.

#3 Gnome

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 02 Декабрь 2013 - 21:44

Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "string:" on line 32 "{$n=inflect(&quot;исполнительный директор&quot;)}" unknown function "inflect"'

function_custom.php - в кодировке UTF-8

#4 Gnome

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 02 Декабрь 2013 - 21:59

просто по ФТП нельзя файл "залить"?

#5 Gnome

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 02 Декабрь 2013 - 22:30

через менеджер "залил файл"
ошибка та же.

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 03 Декабрь 2013 - 11:36

Опечатка, файл должен быть functions_custom.php.

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 03 Декабрь 2013 - 11:40

Просмотр сообщенияGnome (02 Декабрь 2013 - 21:59) писал:

просто по ФТП нельзя файл "залить"?

Можно и по ftp, но во-первых, не всегда такая возможность есть, во-вторых в этом случае он у вас не станет частью конфигурации (не будет включаться в бэкап, к примеру). Для работы самого файла это без разницы.

#8 Gnome

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 03 Декабрь 2013 - 19:25

Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "string:" on line 32 "{$n=inflect(&quot;генеральный директор&quot;)}" unknown function "inflect"' in /home/nodesign/public_html/nservis/cb/include/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:441 Stack trace: #0 /home/nodesign/public_html/nservis/cb/include/Smarty/sysplugins/smarty_internal_templateparser.php(2694): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown functio...') #1 /home/nodesign/public_html/nservis/cb/include/Smarty/sysplugins/smarty_internal_templateparser.php(2846): Smarty_Internal_Templateparser->yy_r150() #2 /home/nodesign/public_html/nservis/cb/include/Smarty/sysplugins/smarty_internal_templateparser.php(2946): Smarty_Internal_Templateparser->yy_reduce(150) #3 /home/nodesign/public_html/nservis/cb/include/Smarty/sysplugins/smarty_internal_smartytemplatecompiler.php(51): Smarty_Internal_Templateparser->doParse(16, '}') #4 /home/nodesign/public_html/nser in /home/nodesign/public_html/nservis/cb/include/Smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 441

название файла изменил. внес через менеджер файлов.
такое ощущение, что данный файл не инклюдится.

#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Декабрь 2013 - 09:09

Эта ошибка никак не может связана с добавлением вышеописанного файла, если конечно вы его не добавляли куда то еще, кроме как через менеджер внешних файлов, или прописывали где-нибудь include самостоятельно.

#10 Gnome

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 04 Декабрь 2013 - 17:49

первый раз я его добавил через фтп, ошибка, затем удалил, добавил через менеджер точно такая же ошибка... возможно эту функцию включить в другой файл типа functions1.php или functions2.php?

#11 Gnome

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 04 Декабрь 2013 - 17:50

или сделать functions3.php?

#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Декабрь 2013 - 18:12

Файлы functions1.php и functions2.php - системные и перетрутся при очередном обновлении ревизии. Собственно, поэтому functions_custom.php и был введен. Тут либо вы что-то не так делаете, либо у нас баг, хотя до вас никто не жаловался на работу файла. Можете прислать заявку в техподдержку для проверки, так я не могу вам ответить в чем дело.

#13 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Декабрь 2013 - 18:14

Хотя, проверив вашу функцию в начале темы, обнаружил в ней ошибку: присвоение переменной $url строки адреса сделано без обрамляющих кавычек. Но ваш текст ошибки совсем другой.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных