更新:谢谢大家的帮助。我已经使用我所做的更改更新了下面的代码。如果一行被评论,那是我尝试过的东西而且它不起作用,现在没有注释的是我的最后一次尝试。我仍然无法加载我的页面。 再次感谢您!
网站位置:www.encapdio.com/pyscraper.php 我是一个系统人员,他开始编程并决定将一个网站放在一起学习php。我的代码如果导致页面错误500,甚至我的php.ini文件显示错误,它似乎只是打破。我在代码中找不到任何错误,但我很可能需要一双新眼睛。这是应该做的。
此页面的目的是获取每行股票代码符号。一旦你点击提交我的代码应检查textarea是否为空。 如果它不为空,则将$ content添加到数组中,将$ linebreak添加到每个数组项的末尾并对\ r \ n类型换行符进行说明,然后逐行将每个条目写入文件。 如果它是空的,则表示没有输入代码。
然后,如果一切都成功并且状态=结果,您可以看到股票价格旁边的股票代码。我有一个经过全面测试的python脚本,检查将执行我的webcrawler / scraper / ticker_inputs.txt更新程序的ticker_inputs.txt文件。
我无法更新ticker_input.txt文件,甚至在同一页面上显示php和html,而不会出现服务器错误500.
示例代码:
<?php
include("inc/header.php");
include("inc/nav.php");
#if (isset ($_POST[$text_name])) && $_POST['text_name'] != "") {
if (!empty($_POST['textfile'])) {
$content = isset($_POST['textfile'])?$_POST['textfile']:"";
$linebreak = explode("\n", str_replace("\r", "", $content));
$tick_wfile = fopen("ticker_input.txt", "w") or die("Unable to open file!");
fwrite($tick_wfile,$linebreak);
fclose($tick_wfile);
if (empty($_POST['textfile'])) {
echo "No Tickers Were Entered!";
}
header("Location: pyscraper.php?status=results");
exit;
}
include("inc/header.php");
include("inc/nav.php"); ?>
<div class="container" align="center">
<div class="page-header">
<br><h1>Web Scraper<small> built with python</small></h1>
<?php if (isset($_GET["status"]) && $_GET["status"] == "results") {
$tick_rfile = fopen("ticker_input.txt","r") or die("Unable to open file after writting to it!");
echo fread($tick_rfile,filesize("ticker_input.txt"));
fclose($tick_rfile);
} else { ?>
<form name="savefile" method="post" action="">
<fieldset class="form-group">
<label for="tickerlist">Enter Tickers <small>(one per line)</small></label>
<textarea name="textfile" class="form-control" rows="5"></textarea>
</fieldset>
<button type="submit" name="submit_file" value="Save File" class="btn btn-primary">Submit</button>
</form>
<?php } ?>
</div>
</div>
<?php include("inc/footer.php"); ?>
答案 0 :(得分:0)
尝试更改:
header("location:pyscraper.php?status=results");
要
header("Location: pyscraper.php?status=results");
exit;
基本上,如果没有exit;
,PHP的其余部分仍然会被执行。 HTTP headers are case sensitive也是https://jsfiddle.net/zmp1ghat/。
如果这不起作用,我将删除答案。发表评论将更难以遵循。
答案 1 :(得分:0)
此行中缺少一个右括号
$linebreak = explode("\n", str_replace("\r", "", $content);
检查您的代码
答案 2 :(得分:0)
在isset之后的第四行缺少一个开放的paranthesis。
此外,您无法在函数调用中使用isset进行检查。请尝试使用empty()。 $ _POST ['textfile']始终设置但可以为空
检查this link了解更多
答案 3 :(得分:0)
您在此处缺少if (isset $_POST[$text_name])
括号
if(isset($_POST[$text_name]) && $_POST['text_name'] != "")
。请尝试此操作以检查其是否为空以及是否设置为<div id="header-carousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div id="cazza1" class="item active">
</div>
<div id="cazza2" class="item">
</div>
<div id="cazza3" class="item">
</div>
</div>
</div>