首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP编写的变量太多

PHP编写的变量太多
EN

Stack Overflow用户
提问于 2010-09-30 12:48:42
回答 3查看 460关注 0票数 0

我有以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require("class.XMLHttpRequest.php");
function hot($news){
    $url="https://localhost/search.aspx?search=".$news.""; 
 $ajax=new XMLHttpRequest();
 $ajax->setRequestHeader("Cookie","Cookie: host");
 $ajax->open("GET",$url,true);
 $ajax->send(null);
 if($ajax->status==200){
  $rHeader=$ajax->getResponseHeader("Set-Cookie");
  if(substr_count($rHeader, "Present!")>0) { return true; }
 }else{ return false; }
} 

$content1= hot("britney") ? "britney found" : "";
$content2= hot("gaga") ? "gaga found" : "";
$content3= hot("carol") ? "carol found" : ""; 

$filename = 'result.txt';
$handle = fopen($filename, 'a');
fwrite($handle, "$Content1\r\n");
fwrite($handle, "$Content2\r\n");
fwrite($handle, "$Content3\r\n");
fwrite($handle, "$Content4\r\n");
fclose($handle);

我想缩短脚本,因为我有很多$ContentN变量,可能像foreach ??

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-30 12:57:16

我会这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$celebrities = array('britney','gaga','carol');
$filename = 'result.txt';
$handle = fopen($filename, 'a');

foreach($celebrities as $celebrity)
{
    if(hot($celebrity)) { fwrite($handle, "{$celebrity}\r\n"); }
}

fclose($handle);

如果你需要更多的名人,只需将他们添加到阵列中。

票数 3
EN

Stack Overflow用户

发布于 2010-09-30 12:51:05

这样的代码非常接近您的实际代码,但可能不会被推荐使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for($i = 1 ; $i <= 4 ; $i++)
 fwrite($handle, "${Content$i}\r\n");

它使用变量:http://php.net/manual/en/language.variables.variable.php

这里不是最好的解决方案:为什么不简单地使用数组呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$content[1]= hot("britney") ? "britney found" : "";
$content[2]= hot("gaga") ? "gaga found" : "";
$content[3]= hot("carol") ? "carol found" : ""; 
for($i = 1 ; $i <= 4 ; $i++)
 fwrite($handle, $Content[$i]."\r\n");

或者更好的是,使用captaintokyo的解决方案,因为您可能不希望在文本文件中出现空行。

票数 2
EN

Stack Overflow用户

发布于 2010-09-30 13:12:32

下面是一个简短的代码重构。更新了变量名,保存在数组中的趋势主题,以及您询问的foreach。代码未经测试。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require("class.XMLHttpRequest.php");

$result_filename = 'result.txt';

$hot_topics = array(
  'britney',
  'gaga',
  'carol'
  );

$handle = @fopen($result_filename, 'a+');
if (!$handle) {
  exit("Unable to open $result_filename");
}

foreach($hot_topics as $topic) {
  if (is_hot($topic)) {
    fwrite($handle, "$topic found\r\n");
  }
}

fclose($handle);

exit("\ncomplete");

function is_hot($news) {
  $url = "https://localhost/search.aspx?search=".$news; 

  $ajax = new XMLHttpRequest();
  $ajax->setRequestHeader("Cookie", "Cookie: host");
  $ajax->open("GET", $url, true);
  $ajax->send(null);

  if ($ajax->status == 200) {
    $rHeader = $ajax->getResponseHeader("Set-Cookie");
    if (substr_count($rHeader, "Present!") > 0) {
      return true;
    }
  }
  return false;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3830594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文