Привет, я попробую это и работаю для меня:
<?php
$cf = "DTRMRA48P55D539C";
$chiave = "700400125745081";
$numdoc = "AV1871102";
$tipodoc = 1;
//$numid = Привет, я попробую это и работаю для меня:
[110]POST['numid'];
$codoper = "PCCPLA66T11L719L";
$idag = "35852";
$wsdl = "https://portalws.inps.it/ws/wsCessioneQuintoWebTest/WsInpsCessioneQuinto.asmx?WSDL";
$local_cert = "C:\\Apache24\htdocs\sirio2.pem";
$soapClient = new SoapClient($wsdl, array('local_cert' => $local_cert, 'trace' => 1, 'soap_version' => SOAP_1_1));
$result = $soapClient->RichiestaCedibilita(array('CodFiscale' => $cf, 'ChiavePensione' => $chiave, 'NumDocumento' => $numdoc, 'TipoDocumento' => 1, 'CodiceOperatore' => $codoper, 'IdentificativoAgenzia' => $idag));
$xml = simplexml_load_string($result->RichiestaCedibilitaResult);
echo ($xml->Cedibilita->Id);
?>
for baselib in "$@"
do
shortlib=$baselib
while extn=$(echo $shortlib | sed 's/\.[0-9][0-9]*$//')
[ -n "$extn" ]
do
shortlib=$(basename $shortlib $extn)
ln -s $baselib $shortlib
done
done
Я обманул - все ссылки переходят к основной библиотеке (libmythings.so.1.1); если Вы действительно хотите объединить в цепочку, то Вам нужно:
for baselib in "$@"
do
shortlib=$baselib
while extn=$(echo $shortlib | sed 's/\.[0-9][0-9]*$//')
[ -n "$extn" ]
do
shorterlib=$(basename $shortlib $extn)
ln -s $shortlib $shorterlib
shortlib=$shorterlib
done
done
Остерегайтесь - непротестированный код.
Гордость предшествует Немезиде.
Комментарий прибыл, что код выше не работает - и комментарий корректен. Исправленная версия с тестом на месте:
set -- libname.so.5.1.1
for baselib in "$@"
do
shortlib=$baselib
while extn=$(echo $shortlib | sed -n '/\.[0-9][0-9]*$/s/.*\(\.[0-9][0-9]*\)$/\1/p')
[ -n "$extn" ]
do
shortlib=$(basename $shortlib $extn)
echo ln -s $baselib $shortlib
done
done
Изменение находится в sed
команда. Эта версия ничего не печатает по умолчанию (-n
), соответствует только строкам, заканчивающимся точкой, сопровождаемой цифрами, и затем удаляет все за исключением того, что суффикс, и печатает то, что остается для присвоения на extn. Как исправлено, сценарий генерирует вывод ниже. Удалите эхо, чтобы заставить это выполнять команды ссылки.
ln -s libname.so.5.1.1 libname.so.5.1
ln -s libname.so.5.1.1 libname.so.5
ln -s libname.so.5.1.1 libname.so
Сценарий иллюстрирует интересный и часто пропускаемый тезис о сценариях оболочки: последовательность операций в блоке условия некоторое время не должна быть единственной командой. Состояние строки с операцией редактирования не влияет, успешно выполняется ли тест в целом; статус выхода последней команды,'[ -n "$extn" ]
', средства управления, продолжается ли цикл.
Я верю ldconfig
стандартный инструмент, который делает это.
Я вспоминаю где-нибудь, что это может генерировать символьные ссылки на основе информации о внутренней версии, но не может найти источник прямо сейчас.
РЕДАКТИРОВАНИЕ Да, если Вы работаете
ldconfig -v
Вы будете видеть, что он генерирует все ссылки на основе внутренностей библиотеки.
ldconfig /path/to/dir
Только создаст ссылки для файлов в том dir
Примечание, хотя, я играл с ним, и это, кажется, последовательно не создает .so$, просто .so. {Главный}
Я не уверен, как его внутренности работают, но я действительно знаю:
lib # rm libmagic.so lib # rm libmagic.so.1 lib # ldconfig lib # file libmagic.so.1 libmagic.so.1: symbolic link to `libmagic.so.1.0.0' lib # file libmagic.so libmagic.so: cannot open `libmagic.so' (No such file or directory)
Таким образом, то, что определяет, как это работает, является тайной мне
Редактирование На Далее Discetion, .la файлы не имеют никакого влияния на поведение.
"ТАКИМ ОБРАЗОМ", поле имени указывает на то, чем назовут символьную ссылку.
И только будет тот.
0x000000000000000e (SONAME) Библиотека soname: [libmagix.so]
Это после взламывает код и заменяет ".1" пробелами.
ldconfig генерировал "libmagic.so" (да, включенные пробелы)