本文整理汇总了PHP中debug_fclose函数的典型用法代码示例。如果您正苦于以下问题:PHP debug_fclose函数的具体用法?PHP debug_fclose怎么用?PHP debug_fclose使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了debug_fclose函数的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: pingback
function pingback($content, $post_ID)
{
global $wp_version, $wpdb;
include_once ABSPATH . WPINC . '/class-IXR.php';
// original code by Mort (http://mort.mine.nu:8080)
$log = debug_fopen(ABSPATH . '/pingback.log', 'a');
$post_links = array();
debug_fwrite($log, 'BEGIN ' . date('YmdHis', time()) . "\n");
$pung = get_pung($post_ID);
// Variables
$ltrs = '\\w';
$gunk = '/#~:.?+=&%@!\\-';
$punc = '.:?\\-';
$any = $ltrs . $gunk . $punc;
// Step 1
// Parsing the post, external links (if any) are stored in the $post_links array
// This regexp comes straight from phpfreaks.com
// http://www.phpfreaks.com/quickcode/Extract_All_URLs_on_a_Page/15.php
preg_match_all("{\\b http : [{$any}] +? (?= [{$punc}] * [^{$any}] | \$)}x", $content, $post_links_temp);
// Debug
debug_fwrite($log, 'Post contents:');
debug_fwrite($log, $content . "\n");
// Step 2.
// Walking thru the links array
// first we get rid of links pointing to sites, not to specific files
// Example:
// http://dummy-weblog.org
// http://dummy-weblog.org/
// http://dummy-weblog.org/post.php
// We don't wanna ping first and second types, even if they have a valid <link/>
foreach ($post_links_temp[0] as $link_test) {
if (!in_array($link_test, $pung) && url_to_postid($link_test) != $post_ID && !is_local_attachment($link_test)) {
// Also, let's never ping local attachments.
$test = parse_url($link_test);
if (isset($test['query'])) {
$post_links[] = $link_test;
} elseif ($test['path'] != '/' && $test['path'] != '') {
$post_links[] = $link_test;
}
do_action('pre_ping', array(&$post_links, &$pung));
}
}
foreach ($post_links as $pagelinkedto) {
debug_fwrite($log, "Processing -- {$pagelinkedto}\n");
$pingback_server_url = discover_pingback_server_uri($pagelinkedto, 2048);
if ($pingback_server_url) {
@set_time_limit(60);
// Now, the RPC call
debug_fwrite($log, "Page Linked To: {$pagelinkedto} \n");
debug_fwrite($log, 'Page Linked From: ');
$pagelinkedfrom = get_permalink($post_ID);
debug_fwrite($log, $pagelinkedfrom . "\n");
// using a timeout of 3 seconds should be enough to cover slow servers
$client = new IXR_Client($pingback_server_url);
$client->timeout = 3;
$client->useragent .= ' -- WordPress/' . $wp_version;
// when set to true, this outputs debug messages by itself
$client->debug = false;
if ($client->query('pingback.ping', $pagelinkedfrom, $pagelinkedto)) {
add_ping($post_ID, $pagelinkedto);
} else {
debug_fwrite($log, "Error.\n Fault code: " . $client->getErrorCode() . " : " . $client->getErrorMessage() . "\n");
}
}
}
debug_fwrite($log, "\nEND: " . time() . "\n****************************\n");
debug_fclose($log);
}
示例2: pingback
//.........这里部分代码省略.........
$port = isset($bits['port']) ? $bits['port'] : 80;
// Try to connect to the server at $host
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp) {
debug_fwrite($log, 'Couldn\'t open a connection to ' . $host . "\n\n");
continue;
}
// Send the GET request
$request = "GET {$path} HTTP/1.1\r\nHost: {$host}\r\nUser-Agent: WordPress/{$GLOBALS['wp_version']} PHP/" . phpversion() . "\r\n\r\n";
@ob_end_flush();
fputs($fp, $request);
// Start receiving headers and content
$contents = '';
$headers = '';
$gettingHeaders = true;
$found_pingback_server = 0;
while (!feof($fp)) {
$line = fgets($fp, 4096);
if (trim($line) == '') {
$gettingHeaders = false;
}
if (!$gettingHeaders) {
$contents .= trim($line) . "\n";
$pingback_link_offset_dquote = strpos($contents, $pingback_str_dquote);
$pingback_link_offset_squote = strpos($contents, $pingback_str_squote);
} else {
$headers .= trim($line) . "\n";
$x_pingback_header_offset = strpos(strtolower($headers), $x_pingback_str);
}
if ($x_pingback_header_offset) {
preg_match('#x-pingback: (.+)#is', $headers, $matches);
$pingback_server_url = trim($matches[1]);
debug_fwrite($log, "Pingback server found from X-Pingback header @ {$pingback_server_url}\n");
$found_pingback_server = 1;
break;
}
if ($pingback_link_offset_dquote || $pingback_link_offset_squote) {
$quote = $pingback_link_offset_dquote ? '"' : '\'';
$pingback_link_offset = $quote == '"' ? $pingback_link_offset_dquote : $pingback_link_offset_squote;
$pingback_href_pos = @strpos($contents, 'href=', $pingback_link_offset);
$pingback_href_start = $pingback_href_pos + 6;
$pingback_href_end = @strpos($contents, $quote, $pingback_href_start);
$pingback_server_url_len = $pingback_href_end - $pingback_href_start;
$pingback_server_url = substr($contents, $pingback_href_start, $pingback_server_url_len);
debug_fwrite($log, "Pingback server found from Pingback <link /> tag @ {$pingback_server_url}\n");
$found_pingback_server = 1;
break;
}
}
if (!$found_pingback_server) {
debug_fwrite($log, "Pingback server not found\n\n*************************\n\n");
@fclose($fp);
} else {
debug_fwrite($log, "\n\nPingback server data\n");
// Assuming there's a "http://" bit, let's get rid of it
$host_clear = substr($pingback_server_url, 7);
// the trailing slash marks the end of the server name
$host_end = strpos($host_clear, '/');
// Another clear cut
$host_len = $host_end - $host_start;
$host = substr($host_clear, 0, $host_len);
debug_fwrite($log, 'host: ' . $host . "\n");
// If we got the server name right, the rest of the string is the server path
$path = substr($host_clear, $host_end);
debug_fwrite($log, 'path: ' . $path . "\n\n");
// Now, the RPC call
$method = 'pingback.ping';
debug_fwrite($log, 'Page Linked To: ' . $pagelinkedto . "\n");
debug_fwrite($log, 'Page Linked From: ');
$pagelinkedfrom = get_permalink($post_ID);
debug_fwrite($log, $pagelinkedfrom . "\n");
$client = new xmlrpc_client($path, $host, 80);
$message = new xmlrpcmsg($method, array(new xmlrpcval($pagelinkedfrom), new xmlrpcval($pagelinkedto)));
$result = $client->send($message);
if ($result) {
if (!$result->value()) {
debug_fwrite($log, $result->faultCode() . ' -- ' . $result->faultString());
} else {
$value = xmlrpc_decode1($result->value());
if (is_array($value)) {
$value_arr = '';
foreach ($value as $blah) {
$value_arr .= $blah . ' |||| ';
}
debug_fwrite($log, $value_arr);
} else {
debug_fwrite($log, $value);
}
}
}
@fclose($fp);
}
}
debug_fwrite($log, "\nEND: " . time() . "\n****************************\n\r");
debug_fclose($log);
for ($i = count($buf_keep) - 1; $i >= 0; $i--) {
ob_start();
echo $buf_keep[$i];
}
}