如何在不执行功能的情况下停止打印回显结果

时间:2019-11-10 17:01:33

标签: php

这可能是一个愚蠢的问题,

我创建了一个PHP,以便在我的网站中以及最终结果上进行一些检查 我使用echo进行打印或在功能失败的情况下打印“找不到任何内容”

但是问题是,即使我没有单击“提交”按钮,PHP文件仍继续打印“未找到内容”

if (function failed) {
    echo "not found";
} else {
    echo "do stuff here";
}

php文件继续打印“未找到” 我尝试了ob_clean() ob_end_flush() ob_end_clean(),但没有成功

完整代码:

<!DOCTYPE html>
<html>
<head>
<title>Check IMDB</title>
</head>

<body>

    <div class="container">

        <form method="POST" action="">
            <input type="submit" value="&nbsp;&nbsp;Check IMDB&nbsp;&nbsp;">
            <div>
                <textarea style="width: 50%; margin-top:7px; height: 150px;" id="urlbox" name="urlbox" placeholder="Add imdb links here (one per line)"></textarea>
            </div>
        </form>

    </div>

<?php
$imdblink = "";
$imdblink = $_POST['urlbox'];
?>

<?php
set_time_limit(0);
require(dirname(__FILE__) . '/wp-load.php');

global $wpdb;

echo "<br>";
if (!preg_match_all('~tt\d{7,8}~', $imdblink, $ttids)) {
    echo "no ttids found";
} else {
    $resultSet = $wpdb->get_results("SELECT meta_value FROM wp_postmeta WHERE meta_key = 'imdb' AND meta_value IN ('" . implode("','", $ttids[0]) . "');");
    $foundInDatabase = array_column($resultSet, "meta_value");

    foreach ($ttids[0] as $index => $ttid) {
        if (in_array($ttid, $foundInDatabase)) {
            $ttid = '<a style="color:blue;" href="https://www.imdb.com/title/'.$ttid.'/">'.$ttid.'</a>';
        }
        echo "<div>" , ($index + 1) , "- {$ttid}</div>\n";
    }
}

?>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

您应该将名称属性添加到提交按钮,并检查是否按下了按钮。

以您为例,每次运行脚本时都在检查urlbox

<input type="submit" name="submit" value="&nbsp;&nbsp;Check IMDB&nbsp;&nbsp;">
<?php
    if(isset($_POST['submit'])) {
        //Here add your code
    }
?>

仅当按下按钮时,脚本才不会检查urlbox