首页 > 解决方案 > 如何在不执行功能的情况下停止打印回显结果输出

问题描述

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

我创建了一个 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>

标签: php

解决方案


您应该为您的提交按钮添加一个名称属性并检查该按钮是否被按下。

在您的情况下,您urlbox每次运行脚本时都在检查。

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

否,脚本urlbox只会在按下按钮时检查。


推荐阅读