2017-08-20 13 views
2

私はPHPexcelを使用して、私はExcelのファイルを読み込むためのコードPHPを持っていると私はExcelから自分のデータを表示するためにワードプレスのプラグインを作成したい。 Localhostで実行すると、完璧に動作しますが、私のサイトで動作していない場合、別のテンプレートで試してみると、ちょうど空のコンテンツがあります。ワードプレスプラグインを作成する(PHPexcel)

ここに私のコード:normaly

function find(){ 
?> 
<form method="post" action=""> 
Number : <input type="text" name="number" /><button type="submit">Find</button> 
</form> 
<?php 
    if (isset($_POST['number']) { 
    $number = $_POST["number"]; 

    echo $number; 
} 

ページの負荷、および表示$番号:

add_shortcode('show_number', 'find'); 

function find(){ 
?> 
<form method="post" action=""> 
Number : <input type="text" name="number" /><button type="submit">Find</button> 
</form> 


<?php 
    if (isset($_POST['number']) { 
    $number = $_POST["number"]; 

    require_once (plugin_dir_path(__FILE__). 'includes\classes\PHPExcel.php'); 
    $tmpfname = (plugin_dir_path(__FILE__). 'number.xlsx'); 
    $excelReader = PHPExcel_IOFactory::createReaderForFile($tmpfname); 
    $excelObj = $excelReader->load($tmpfname); 
    $worksheet = $excelObj->getSheet(0); 
    $lastRow = $worksheet->getHighestRow(); 
    $excel_arr = $worksheet->toArray(null,true,true,true); 

     for ($row=1;$row <=$lastRow;$row++){ 

      if ($excel_arr[$row]["A"] == $number) { 
       echo $excel_arr[$row]["A"]; 
       break; 
      } 
     } 
    } 
} 

私はあることを読んでExcel用のコードを削除した場合。私はワードプレスプラグインの

解決

をPHPexcelコードを誤用だと思う:パスに

+0

パスを記述するために\を使用しないでください。このシンボルは、エスケープシーケンスとして解釈することもできます。代わりに '/'を使用してください。 – Havenard

+0

Webサーバーのログファイルを調べます。表示されないエラーメッセージが表示されます。また、Havenardによれば、 '/'を使うほうが良いでしょう。私の推測では、これは問題である:あなたはローカルでWindowsを使っていますか( "\"で大丈夫でしょうか?)、あなたのサーバーにはUnixがありますか?しかし、 "\"は一重引用符で囲まれた文字列のリテラルのバックスラッシュとして扱われるため、エスケープする必要があります。 –

+0

([debug mode](https://codex.wordpress.org/Debugging_in_WordPress) ) –

答えて

1

を記述するために「\」を使用することは避けてくださいあなたは問題だけのカップルがあります:

  1. サーバーには表示しないように設定されていますエラーが発生するため、有用なエラーメッセージではなく空白の画面が表示されます。サーバーのエラーログを確認し、少なくとも一時的にWordPressでdebug modeを有効にすることを検討してください。

  2. ディレクトリセパレータとしてバックスラッシュを使用しています。これは、Windowsマシンで動作します(私はあなたのローカルマシンがWindowsだと思っていますが、Unixマシンでは動作しません)。パスセパレータとしてスラッシュ( "/")を使用してみてください。これは両方のプラットフォームで動作します。

(あなたが本当にベルトと中括弧を移動したい場合は、あなたがPHPの定数DIRECTORY_SEPARATORを使用することができますが、それはやり過ぎと難しくあなたのコードを読むために作ることができます。ほとんどの人は、単にスラッシュを転送するために固執する。)

関連する問題