У меня есть три PHP файлы: engine.php, links.php и test.phpВключить и не работает должным образом ob_get_clean
В теории, когда я называю _insert()
функцию в test.php он должен заменить строку с выходом links.php, вместо этого ob_start()
и ob_get_clean()
игнорируются, а вывод links.php просто эхом.
engine.php
function db() {
require("config.php");
$conn = @mysql_connect($host, $uname, $pass) or die("DB error: ".mysql_error());
@mysql_select_db($db) or die("DB error: ".mysql_error());
@mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'"); #UTF-8 FIX
}
function _include($x) {
if (preg_match("/<!--Include:(.*)-->/", $x, $matches)){
ob_start();
include($matches[1]);
$output = ob_get_clean();
return preg_replace("/<!--Include:(.*)-->/", $output, $x);
}
}
links.php
<?php
$query = @mysql_query("SELECT title, description, url FROM links ORDER BY id") or die("DB error: ".mysql_error());
while($row = @mysql_fetch_array($query)) {
$url = $row["url"];
$title = $row["title"];
$description = $row["description"];
echo "<a href=\"$url\">$title</a>: $description";
}
@mysql_close($conn) or die(mysql_error());
?>
test.php
<?php
require("engine.php");
db();
echo _include("<div><!--Include:links.php--></div>");
?>
Вместо того, чтобы выводить ряд ссылок внутри DIV, он пропускает возврат полностью end echoes from links.php, как если бы существовал только объект include и no ob_start()
и ob_get_clean()
.
Почему?
Вы можете добавить образец результата, пожалуйста? – Cedric
[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). – Touki
Я должен использовать mysql_ *, потому что сервер старый, и его php – Simosito