包括不在服务器上工作

时间:2016-12-28 08:06:38

标签: php string replace

我正在使用

function load($c) {
    if (strpos($c, "Cyclos\\") >= 0) {
        include str_replace("\\", "/", $c) . ".php";
    }
}

spl_autoload_register("load");

它正确地在localhost上工作。但在将其上传到服务器后,它无法正常工作。我该如何解决?

1 个答案:

答案 0 :(得分:0)

这里有两个错误:

  1. strpos()是一个区分大小写的函数,您应该使用stripos()。同样适用于str_replace(),您应该使用str_ireplace()。但是,由于您只是在代码中替换反斜杠,因此在这种情况下不会产生影响。

  2. 如果没有找到任何匹配项,则
  3. strpos()stripos()返回false(int) false == 0,如果发生,则返回function load($c) { if (stripos($c, "Cyclos\\") !== false) { include str_replace("\\", "/", $c) . ".php"; } } spl_autoload_register("load");

    < / LI>

    试试这个:

     public class PurchaseTestingActivity extends AppCompatActivtiy implements BillingProcessor.IBillingHandler {
    
        ........
      purchaseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                boolean isAvailable = BillingProcessor.isIabServiceAvailable(PrivateAndPublicCardHoldScreen.this);
                if (isAvailable) {
                           BillingProcessor bp = new BillingProcessor(this, "YOUR LICENSE KEY FOR THIS APPLICATION", this);
                 /// this is the actually product 
    //                    bp.purchase(PrivateAndPublicCardHoldScreen.this, "upgrade_to_premium");
    
          //// for testing purposes  
                    bp.purchase(PrivateAndPublicCardHoldScreen.this, "android.test.purchased");
                }else{
                    Toast.makeText(PrivateAndPublicCardHoldScreen.this, "Your device is not supported, please contact us.", Toast.LENGTH_LONG).show();
                }
            }
        });
    
      ..........
    
       @Override
    public void onProductPurchased(String productId, TransactionDetails details) {
        /// handle your app after purchases done
    
    }
    
    @Override
    public void onPurchaseHistoryRestored() {
    
    }
    
    @Override
    public void onBillingError(int errorCode, Throwable error) {
    
    }
    
    @Override
    public void onBillingInitialized() {
    
    }
    
    
     }
    

    然而,原因可能在不同的文件系统上有所不同,在localhost上你可能有一个不区分大小写的文件系统(例如NTFS),以及&#34; cyclos.php&#34;与&#34; Cyclos.php&#34;相同,而在具有EXT *文件系统的** nix系统上,文件名中的案例变体将起作用。