Делаем это.
Собственно сама функция и вызов.
function sklon($word,$padeg) {
$url = "http://morpher.ru/WebService.asmx/GetXml?s=$word";
$hash=md5($word);
if (file_exists($hash.'.xml')) {$tmp=file($hash.'.xml'); $rod=$tmp[0]; $dat=$tmp[1]; $vin=$tmp[2]; $tvor=$tmp[3]; $predl=$tmp[4];} else {
$xml = simplexml_load_file($url);
$im = $word;
$rod = trim($xml->Р);
$dat = trim($xml->Д);
$vin = trim($xml->В);
$tvor = trim($xml->Т);
$predl = trim($xml->П);
$k=fopen($hash.'.xml',"w");
fwrite($k,$rod."\n".$dat."\n".$vin."\n".$tvor."\n".$predl."\n");
fclose($k);
}
if ($padeg == 'rod') {return $rod;} elseif ($padeg == 'dat') {return $dat;} elseif ($padeg == 'vin') {return $vin;} elseif ($padeg == 'tvor') {return $tvor;} elseif ($padeg == 'predl') {return $predl;} else {return FALSE;}
}
$text = 'sklon(бурый медведь,rod) часто видят в лесу, так часто, что даже забывают о sklon(маленький еж,predl)';
$sklonoutarr = array();
$sklonpattern = '/sklon\((.*?),(.*?)\)/';
preg_match_all($sklonpattern, $text, $sklonarray);
for ($i=0; $i<(count($sklonarray[0])); $i++) {
$text=str_replace($sklonarray[0][$i],sklon($sklonarray[1][$i], $sklonarray[2][$i]),$text);
}
echo $text;
Саму функцию нужно вставить в template.php, а вызов делаем через theme_preprocess_node:
if ($vars['page']) {
$sklonoutarr = array();
$sklonpattern = '/sklon\((.*?),(.*?)\)/';
preg_match_all($sklonpattern, $vars['content'], $sklonarray);
for ($i=0; $i
}
Вызов такой sklon(слово в именительном падеже, падеж)
Обращаю внимание, что необходимо создать папку для размещения кэша, потому что она сама не создается.
Комментариев нет:
Отправить комментарий