PHP 脚本无限期保留 运行
PHP script keeps running indefinetly
我添加了以下代码来显示目录中的文件
$exclude = array("index.php","cssheadertop.php","cssheaderbottom.php");
$cssfiles = array_diff(glob("*.php"), $exclude);
for($i=0;$i<=5;$i++){
$filename = "http://8mags.com/lessons/css/".$cssfiles[$i];
outputtags($filename,true,true);
}
我不知道为什么,但它会无限期地保持 运行。函数 outputtags
没有问题,因为下面的代码工作正常
$exclude = array("index.php","cssheadertop.php","cssheaderbottom.php");
$cssfiles = array_diff(glob("*.php"), $exclude);
for($i=0;$i<=5;$i++){
$cssfile = array_rand($cssfiles);
$filename = "http://8mags.com/lessons/css/".$cssfiles[$cssfile];
outputtags($filename,true,true);
}
完美运行。
这是输出标签的代码
function outputtags($filename,$other,$programming)
{
$html = file_get_contents_curl($filename);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');
$title = $nodes->item(0)->nodeValue;
$metas = $doc->getElementsByTagName('meta');
for ($i = 0; $i < $metas->length; $i++)
{
$meta = $metas->item($i);
if($meta->getAttribute('property') == 'og:title')
$ogtitle = $meta->getAttribute('content');
if($meta->getAttribute('property') == 'og:image')
$ogimage = $meta->getAttribute('content');
if($other)
{if($meta->getAttribute('property') == 'og:description')
$ogdescription = $meta->getAttribute('content');}
}
echo '<p style="margin:0;"><a href='.$filename.' target=_blank>'.$ogtitle.'</a></p>';
if(!$other)
echo '<a href='.$filename.' target=_blank><img style="margin:0 0 40px 0;" src="'.$ogimage.'" alt=""></a></br>';
if($other)
{
if(!$programming)
echo '<a href='.$filename.' target=_blank><img src="'.$ogimage.'" alt=""></a></br>';
echo '<p style="margin:0 0 40px 0;">'.$ogdescription.'</p>';
}
}
按照我收到的评论中的建议写完exit;
最后进行编辑
array(8) { [0]=> string(12) "3dbutton.php" [1]=> string(15) "basicbutton.php" [2]=> string(19) "basictextshadow.php" [5]=> string(11) "cssmenu.php" [6]=> string(21) "csstexteffectlogo.php" [7]=> string(22) "glossyroundbuttons.php" [8]=> string(18) "glowtextshadow.php" [10]=> string(26) "transitionhoverbuttons.php" }
终于在使用 foreach 脚本后仍然保留 运行 很长一段时间的任何建议
foreach ($cssfiles as $cssfile) {
$filename = "http://8mags.com/lessons/css/".$cssfiles[$cssfile];
outputtags($filename,true,true);
}
您的数组键是 0、1、2、5、6、7 等...这就是为什么它在不使用随机时会中断的原因,因为它正在寻找键 3 和 4。您需要重新键入您的键数组或使用 "for each" 而不是以数字方式遍历键。
$exclude = array("index.php","cssheadertop.php","cssheaderbottom.php");
$cssfiles = array_diff(glob("*.php"), $exclude);
for($i=0;$i<=5;$i++){
$filename = "http://8mags.com/lessons/css/".$cssfiles[$i];
outputtags($filename,true,true);
}
当运行脚本时,
$filename = "http://8mags.com/lessons/css/".$cssfiles[3];
$filename = "http://8mags.com/lessons/css/".$cssfiles[4];
不存在,所以中断。
您正在将 http://8mags.com/lessons/css/
发送到您的 outputtags()。
我添加了以下代码来显示目录中的文件
$exclude = array("index.php","cssheadertop.php","cssheaderbottom.php");
$cssfiles = array_diff(glob("*.php"), $exclude);
for($i=0;$i<=5;$i++){
$filename = "http://8mags.com/lessons/css/".$cssfiles[$i];
outputtags($filename,true,true);
}
我不知道为什么,但它会无限期地保持 运行。函数 outputtags
没有问题,因为下面的代码工作正常
$exclude = array("index.php","cssheadertop.php","cssheaderbottom.php");
$cssfiles = array_diff(glob("*.php"), $exclude);
for($i=0;$i<=5;$i++){
$cssfile = array_rand($cssfiles);
$filename = "http://8mags.com/lessons/css/".$cssfiles[$cssfile];
outputtags($filename,true,true);
}
完美运行。
这是输出标签的代码
function outputtags($filename,$other,$programming)
{
$html = file_get_contents_curl($filename);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');
$title = $nodes->item(0)->nodeValue;
$metas = $doc->getElementsByTagName('meta');
for ($i = 0; $i < $metas->length; $i++)
{
$meta = $metas->item($i);
if($meta->getAttribute('property') == 'og:title')
$ogtitle = $meta->getAttribute('content');
if($meta->getAttribute('property') == 'og:image')
$ogimage = $meta->getAttribute('content');
if($other)
{if($meta->getAttribute('property') == 'og:description')
$ogdescription = $meta->getAttribute('content');}
}
echo '<p style="margin:0;"><a href='.$filename.' target=_blank>'.$ogtitle.'</a></p>';
if(!$other)
echo '<a href='.$filename.' target=_blank><img style="margin:0 0 40px 0;" src="'.$ogimage.'" alt=""></a></br>';
if($other)
{
if(!$programming)
echo '<a href='.$filename.' target=_blank><img src="'.$ogimage.'" alt=""></a></br>';
echo '<p style="margin:0 0 40px 0;">'.$ogdescription.'</p>';
}
}
按照我收到的评论中的建议写完exit;
最后进行编辑
array(8) { [0]=> string(12) "3dbutton.php" [1]=> string(15) "basicbutton.php" [2]=> string(19) "basictextshadow.php" [5]=> string(11) "cssmenu.php" [6]=> string(21) "csstexteffectlogo.php" [7]=> string(22) "glossyroundbuttons.php" [8]=> string(18) "glowtextshadow.php" [10]=> string(26) "transitionhoverbuttons.php" }
终于在使用 foreach 脚本后仍然保留 运行 很长一段时间的任何建议
foreach ($cssfiles as $cssfile) {
$filename = "http://8mags.com/lessons/css/".$cssfiles[$cssfile];
outputtags($filename,true,true);
}
您的数组键是 0、1、2、5、6、7 等...这就是为什么它在不使用随机时会中断的原因,因为它正在寻找键 3 和 4。您需要重新键入您的键数组或使用 "for each" 而不是以数字方式遍历键。
$exclude = array("index.php","cssheadertop.php","cssheaderbottom.php");
$cssfiles = array_diff(glob("*.php"), $exclude);
for($i=0;$i<=5;$i++){
$filename = "http://8mags.com/lessons/css/".$cssfiles[$i];
outputtags($filename,true,true);
}
当运行脚本时,
$filename = "http://8mags.com/lessons/css/".$cssfiles[3];
$filename = "http://8mags.com/lessons/css/".$cssfiles[4];
不存在,所以中断。
您正在将 http://8mags.com/lessons/css/
发送到您的 outputtags()。