Предположительно, вы используете El Capitan (OS X 10.11) или новее. Это побочный эффект защиты целостности системы. Из Руководство по защите целостности системы: статья Runtime Protections :
Когда процесс запускается, ядро проверяет, защищен ли основной исполняемый файл на диске или подписан со специальным правом системы. Если значение равно true, то флаг установлен для обозначения того, что он защищен от модификации. ...
... Любые динамические компоновщики (
blockquote>dyld
), такие какDYLD_LIBRARY_PATH
, очищаются при запуске защищенных процессов.Все системные переводчики, в том числе
/bin/sh
, защищены таким образом. Поэтому, когда вы вызываетеsh
, все переменные среды DYLD_ * очищаются.Вы можете написать сценарий оболочки, который устанавливает
DYLD_LIBRARY_PATH
, а затем выполняет.sconf_temp/conftest_7
. Вы можете использовать интерпретатор оболочки для выполнения этого - в самом деле, вы должны - и переменная среды будет прекрасной, поскольку очистка происходит, когда запускается защищенный исполняемый файл. В принципе, этот подход аналогичен рабочему примеру в вашем вопросе, но инкапсулирован в сценарий оболочки.
В <content:encoded>
, content
- это пространство имен , а encoded
- это имя тега.
Вы должны использовать SimpleXMLElement::children
. Смотрите вывод
var_dump($entry->children("content", true));
Рабочий ответ на это просто:
$e_content = $entry->children("content", true);
$e_encoded = (string)$e_content->encoded;