1
以下代碼正在檢查頁面內的鏈接,然後嘗試處理這些鏈接並通過返回標題代碼來檢查它們是否工作。 我基本上需要使用第二個函數中第一個函數的返回值$ 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 />";
};
'return ** $ links **;'?你的意思是你只是想存儲'checkPage()'函數的值?這是PHP101 ...'$ links = checkPage($ content);'。 –
你只需要'$ links = checkPage($ content);'?這看起來是從你的代碼中遺失的,但這是非常基本的PHP考慮你已經擁有的。 – iainn
是的,我忘了複製包含一段HTML標記的變量「content」。返回** $ links **;應該在沒有星號的情況下顯示,因爲我試圖在頁面編輯器中加粗這個詞。 – gcerni