PHP在另一个函数中使用函数的返回值
问题描述:
以下代码正在检查页面内的链接,然后尝试处理这些链接并通过返回标题代码来检查它们是否工作。 我基本上需要使用第二个函数中第一个函数的返回值$ links。可能吗?PHP在另一个函数中使用函数的返回值
这里是我的代码
function checkPage ($content){
$textLen = strlen($content);
$links = array();
if ($textLen > 5){
$startPos = 0;
$valid = true;
while ($valid){
$spos = strpos($content,'<a ',$startPos);
if ($spos < $startPos) $valid = false;
$spos = strpos($content,'href',$spos);
$spos = strpos($content,'"',$spos)+1;
$epos = strpos($content,'"',$spos);
$startPos = $epos;
$link = substr($content,$spos,$epos-$spos);
if (strpos($link,'https://') !== false) $links[] = $link;
if (strpos($link,'http://') !== false) $links[] = $link;
}
}
return **$links**;
};
print_r(checkPage($content));
foreach ($links as &$link) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
$headers = curl_getinfo($ch);
if(curl_error($ch))
{
echo 'error:' . curl_error($ch);
}
curl_close($ch);
echo $link." returns code ".$headers['http_code']."<br />";
};
答
要打印的返回值,但此后会忽略它:
print_r(checkPage($content));
商店中的一个变量返回的值。它不需要是相同的变量名称。在这种情况下,可能不应该使用相同的变量名来保持概念清晰。因此,像这样:
$returnedLinks = checkPage($content);
print_r($returnedLinks);
foreach ($returnedLinks as $link) {
// do something with $link
}
从函数返回值不作变量本身提供的功能之外。它只是意味着当你调用该函数时,那个函数调用会对结果进行求值,就像你在内部定义结果而不是调用函数一样。您只需将该结果存储在一个变量中即可使用它,就像任何其他值一样。
+0
谢谢,我仍然是新的编码。 – gcerni
'return ** $ links **;'?你的意思是你只是想存储'checkPage()'函数的值?这是PHP101 ...'$ links = checkPage($ content);'。 –
你只需要'$ links = checkPage($ content);'?这看起来是从你的代码中遗失的,但这是非常基本的PHP考虑你已经拥有的。 – iainn
是的,我忘了复制包含一段HTML标记的变量“content”。返回** $ links **;应该在没有星号的情况下显示,因为我试图在页面编辑器中加粗这个词。 – gcerni