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=" Check IMDB ">
<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>
解决方案
您应该为您的提交按钮添加一个名称属性并检查该按钮是否被按下。
在您的情况下,您urlbox
每次运行脚本时都在检查。
<input type="submit" name="submit" value=" Check IMDB ">
<?php
if(isset($_POST['submit'])) {
//Here add your code
}
?>
否,脚本urlbox
只会在按下按钮时检查。
推荐阅读
- jquery - Colorbox - Ipad/Iphone 上的点击事件未触发
- mysql - 使用 mysql 查询基于不同组获取 product_id 列的不同计数
- actionscript-3 - 在 AS3 中使用对象访问器
- angular - Swagger-ui 将查询参数中的对象展平,但生成的角度客户端不会
- python - numba `cache=True` 没有效果
- php - Symfony 4:“必须实现接口 DateTimeInterface”错误
- laravel - 当 Model 和 table 具有不同的名称时使用 HasMany 关系
- android - 使用模板字符串动态引用视图的 ID?
- javascript - 通过 Heroku 获取客户端 IP 地址
- powershell - 带有参数的 PowerShell 调用不替代 PARAM 来安装 MSI