PHP – имя функции должно быть строкой

Ошибка:

PHP Notice: Undefined variable: exec in readings.php on line 3 PHP Fatal error: Function name must be a string in readings.php on line 3 

Код:

 <?php require('smarty_config.php'); exec('reading_fetcher.py',$output,$ret_code); $smarty->assign('readings',$output); $smarty->display('readings.tpl'); ?> 

Меня попросили reading_fetcher.py код reading_fetcher.py вот он:

 #!/usr/bin/env python import urllib2, re response = urllib2.urlopen('http://it.ctsfw.edu/inc/nc_scriptureframe.php') html = response.read() def remove_html_tags(data): p = re.compile(r'<.*?>') return p.sub(' ', data) import re import htmlentitydefs def convertentity(m): if m.group(1)=='#': try: return unichr(int(m.group(2))) except ValueError: return '&#%s;' % m.group(2) try: return htmlentitydefs.entitydefs[m.group(2)] except KeyError: return '&%s;' % m.group(2) def converthtml(s): return re.sub(r'&(#?)(.+?);',convertentity,s) readings = converthtml(str(remove_html_tags(html))) readings.replace("&nbsp;", " ") print readings[699:] 

Я уже смотрел здесь , здесь и здесь . Две из этих ошибок – дополнительные «$». Я не вижу дополнительного «$» в имени моей функции. Третья ошибка имеет «()» вместо «[]». Поэтому я попытался заменить их. Это не сработало. Что еще я могу попробовать?

Solutions Collecting From Web of "PHP – имя функции должно быть строкой"

exec () может быть отключен администратором сервера. В этом случае вызов exec будет печатать E_NOTICE и E_WARNING. Поэтому, если вы отключили печать предупреждений, вы можете видеть только E_NOTICE и, возможно, пропустить более интересное предупреждение о том, что «exec был отключен по соображениям безопасности».

Вы можете добавить эту строку в свой код

 error_reporting(E_ALL); 

так что вы можете иметь более подробное исполнение.