Ошибка:
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(" ", " ") print readings[699:]
Я уже смотрел здесь , здесь и здесь . Две из этих ошибок – дополнительные «$». Я не вижу дополнительного «$» в имени моей функции. Третья ошибка имеет «()» вместо «[]». Поэтому я попытался заменить их. Это не сработало. Что еще я могу попробовать?
exec () может быть отключен администратором сервера. В этом случае вызов exec будет печатать E_NOTICE и E_WARNING. Поэтому, если вы отключили печать предупреждений, вы можете видеть только E_NOTICE и, возможно, пропустить более интересное предупреждение о том, что «exec был отключен по соображениям безопасности».
Вы можете добавить эту строку в свой код
error_reporting(E_ALL);
так что вы можете иметь более подробное исполнение.