私はYahooの財務から株価情報を取得するwordpressプラグインを使用しています。非常に奇妙なことに、ちょっとしたことがあるだけです。私はランダムに140行目で致命的なエラーを表示します...そして140行目はブレークです。私はコードを理解するために引用符の下にコピーしています。編集:今私は、完全なPHPファイルを...持っている!PHP致命的なエラーブレーク。
<?php
/* プラグイン名:http://www.dagondesign.com/articles/stock-quotes-plugin-for-wordpress/ 説明:ダゴンデザイン バージョン:1.0.1 著者URI:http://www.dagondesign.com */
ウェブサイト 著者に表示株価証券は プラグインURIを引用$ ddsq_version = '1.0.1';
//セットアップのデフォルトのオプションは add_option( 'ddsq_format'、 '%のNAME%:% LAST%(%変更%の)')が存在しない場合は、 add_option( 'ddsq_up_color'、 '00BB00'); add_option( 'ddsq_down_color'、 'FF0000'); add_option( 'ddsq_update_time'、 '10');
関数ddsq_add_option_pages(){ IF(function_exists( 'add_options_page')){ add_options_page( '株価'、 'DDStockQuotes'、8、FILE、 'ddsq_options_page')。 }
}
関数ddsq_options_page(){
global $ddsq_version;
if (isset($_POST['set_defaults'])) {
echo '<div id="message" class="updated fade"><p><strong>';
update_option('ddsq_format', '<strong>%NAME%</strong> %LAST% [<strong>%CHANGE%</strong>]');
update_option('ddsq_up_color', '00BB00');
update_option('ddsq_down_color', 'FF0000');
update_option('ddsq_update_time', '10');
echo 'Default Options Loaded!';
echo '</strong></p></div>';
} else if (isset($_POST['info_update'])) {
update_option('ddsq_format', (string) $_POST["ddsq_format"]);
update_option('ddsq_up_color', (string) $_POST["ddsq_up_color"]);
update_option('ddsq_down_color', (string) $_POST["ddsq_down_color"]);
update_option('ddsq_update_time', $_POST["ddsq_update_time"]);
echo 'Configuration Updated!';
echo '</strong></p></div>';
} ?>
<div class=wrap>
<h2>Stock Quotes v<?php echo $ddsq_version; ?></h2>
<p>For information and updates, please visit:<br />
<a href="http://www.dagondesign.com/articles/stock-quotes-plugin-for-wordpress/">http://www.dagondesign.com/articles/stock-quotes-plugin-for-wordpress/</a></p>
<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
<input type="hidden" name="info_update" id="info_update" value="true" />
<h3>Usage</h3>
<p>There are two ways you can display quotes:</p>
<p><strong>1) In a post or page</strong>
<br />
[stock MSFT]</p>
<p><strong>2) In a template file</strong>
<br />
<?php echo ddsq_get_quote('MSFT'); ?></p>
<h3>Options</h3>
<table width="100%" border="0" cellspacing="6" cellpadding="4">
<tr valign="top"><td width="13%">
<strong>Output Format </strong>
</td><td align="left">
<input name="ddsq_format" type="text" size="100" value="<?php echo htmlspecialchars(stripslashes(get_option('ddsq_format'))) ?>"/>
<br />Placeholders for data: <strong>%NAME% %LAST% %CHANGE%</strong>
</td></tr>
<tr valign="top"><td width="13%">
<strong>Up Color </strong>
</td><td align="left">
<input name="ddsq_up_color" type="text" size="7" value="<?php echo get_option('ddsq_up_color') ?>"/>
Color to use for price change when up (leave blank to disable)
</td></tr>
<tr valign="top"><td width="13%">
<strong>Down Color </strong>
</td><td align="left">
<input name="ddsq_down_color" type="text" size="7" value="<?php echo get_option('ddsq_down_color') ?>"/>
Color to use for price change when down (leave blank to disable)
</td></tr>
<tr valign="top"><td width="13%">
<strong>Update Time </strong>
</td><td align="left">
<input name="ddsq_update_time" type="text" size="3" value="<?php echo get_option('ddsq_update_time') ?>"/>
Number of minutes to wait, before fetching updated stock prices
</td></tr>
</table>
<div class="submit">
<input type="submit" name="set_defaults" value="<?php _e('Load Default Options'); ?> »" />
<input type="submit" name="info_update" value="<?php _e('Update options'); ?> »" />
</div>
</form>
</div><?php
}
関数ddsq_get_quote($のSYMB){
$up_color = trim(get_option('ddsq_up_color'));
$down_color = trim(get_option('ddsq_down_color'));
$quote_format = stripslashes(get_option('ddsq_format'));
$update_time = trim(get_option('ddsq_update_time'));
$update_time = $update_time * 60;
$t_out = '';
$time_diff = '';
// Trying to open local cached file first
$file_path = WP_PLUGIN_DIR . "/" . $symb . ".txt";
if (file_exists($file_path)){
$time_diff = date('U') - filemtime($file_path);
}
$lf = @fopen($file_path, "r");
if (($lf == FALSE) || ($time_diff >= $update_time)) {
$url = "http://finance.yahoo.com/d/quotes.csv?s=" . $symb . "&f=sl1c1";
$fp = @fopen($url, "r");
if ($fp == FALSE) {
#$t_out = 'Error opening: ' . htmlspecialchars($url);
break;
} else {
$array = @fgetcsv($fp , 4096 , ', ');
@fclose($fp);
$sq_name = $array[0];
$sq_last = $array[1];
$sq_change = $array[2];
$col = NULL;
if (($sq_change[0] == '-') && ($down_color != '')) {
$col = $down_color;
} else if (($sq_change[0] == '+') && ($up_color != '')) {
$col = $up_color;
}
if ($col !== NULL) {
$sq_change = '<span style="color: #' . $col . ';">' . $sq_change . '</span>';
}
$t_out = $quote_format;
$t_out = str_replace('%NAME%', $sq_name, $t_out);
$t_out = str_replace('%LAST%', $sq_last, $t_out);
$t_out = str_replace('%CHANGE%', $sq_change, $t_out);
$cache_file = fopen($file_path, "w+");
fwrite($cache_file, $t_out);
}
} else {
fclose($lf);
$t_out = file_get_contents($file_path);
if ($t_out == FALSE){
echo "ERROR opening cache file";
}
}
return $t_out;
}
関数ddsq_process($コンテンツ){
$results = array();
preg_match_all("/\[\s?stock\s?(.*)\s?\]/", $content, $results);
$i = 0;
foreach ($results[0] as $r) {
$content = str_replace($r, ddsq_get_quote($results[1][$i]), $content);
$i++;
}
return $content;
}
ADD_FILTER( 'the_content'、 'ddsq_process')。 add_action( 'admin_menu'、 'ddsq_add_option_pages');
?>
致命的なエラーは "on line 140"と表示されますか?それは奇妙だ。 – BoltClock
そこに 'for' /' while'ループがあります。なぜならそこに 'break 'の理由がないからです。 – mhitza
ええ、すべてのコードを投稿すると便利です。あなたはそれをカットしました。 – BraedenP