2017-11-27 3 views
-2

マスターコードと2つの契約があります.1は例えば '13'で、フォルダー '13'に置かれ、もう1つは '00000013'(先行ゼロ)です。フォルダ '00000013'に配置されます。しかし、マスターコードを読めば、先行ゼロが失われ、間違った文書を見ることになります。正しいフォルダからマスタコード '00000013'のドキュメントを読み取るにはどうすればよいですか?文書を取り出すときに先行ゼロのマスターコードが消えます

if (isset($_GET['companycode']) && isset($_GET['mastercode'])) { 
    $FileRetreiverType = FileRetreiverTypeEnums::Tables; 
    $Code = $_GET['companycode']; 
    $Code2 = $_GET['mastercode']; 
    $Year = $_GET['year']; 
    $retreiver = new FileRetreiver($Year, $FileRetreiverType, $Code, $Code2); 
    $response .= $retreiver->GetResponse($ReturnFormat); 
} 

class FileRetreiver { 
    public function __construct($year, $retreiverType, $id, $id2 = '') { 
     $this->FileRetreiverType = $retreiverType; 
     $this->Id = $id; 
     $this->Id2 = $id2; 
     $this->Year = $year; 
    } 
    /* ... */ 
} 

インターネット上のフォルダは、次のように構築されています../2017/Tables/321/13/ とフォルダ:たとえば 、フォルダを持っている../2017/テーブル/ 321/00000013/

$Response = "../". $this->Year. "/ Tables /". $this->Id. "/". $this->Id2. "/"; 
+2

に変換しません試してみてください、あなたはマスターコードが正しく送信されますか?それはどこかのIntへの変換のように見えます。 – kabanus

+1

あなたが投稿したコードは、あなたが説明した行動の理由を公開していません。ほとんどの場合、投稿していないコードで '$ _GET ['master code']'の値を 'int'に変換します。 – axiac

+0

変数を文字列に型キャストしてチェックすると、ゼロを失うことはありません。 – Xitas

答えて

0

これは、intデータ型

if (isset ($_GET ['company code']) && isset ($_GET ['master code'])) 
{ 
$FileRetreiverType = FileRetreiverTypeEnums :: Tables; 
$Code = "$_GET ['company code']"; 
$Code2 = (string)"$_GET ['master code']"; 
$Year = $_GET ['year']; 
$retreiver = new FileRetreiver ($Year, $FileRetreiverType, $Code, $Code2); 
$response. = $retreiver-> GetResponse ($ReturnFormat); 
} 
+0

そして、このコマンドを変更する必要はありません。$ this-> Id2 = $ id2; ? – user1531040

+0

いいえデータベースに文字列がある場合は、文字列を返します – Xitas

+0

$ this-> Id2返すのは何ですか? – Xitas

関連する問題