2017-12-30 36 views
2

私はin_arrayと対話したくない2つの変数を持っています。変数が機能しませんか?/in_array

(前編)Maincodeに加え:

//Get Countrys 
$Countrys = str_get_html($Disthtml); 
$Countrys2 = $Countrys->find('span[class=regions regionsInt]'); 

//Get Departure Country 
$DepartureC = $Countrys2[0]; 
$DepartureC2 = explode(',', $DepartureC); 
$DepartureC3 = end($DepartureC2); 
$DepartureC4 = str_replace(' ', '', $DepartureC3); 
$DepartureCountry = $DepartureC4; 

//Get Arrival Country 
$ArrivalC = $Countrys2[1]; 
$ArrivalC2 = explode(',', $ArrivalC); 
$ArrivalC3 = end($ArrivalC2); 
$ArrivalC4 = str_replace(' ', '', $ArrivalC3); 
$ArrivalCountry = $ArrivalC4; 

(第二部)Maincode:Webページから

//Check if Departure Country or Arrival Country is inside the EU 
$CountrysEU = array('Austria', 'Belgium', 'Bulgaria', 'Croatia', 'Cyprus', 'CzechRepublic', 'Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary', 'Ireland', 'Italy', 'Latvia', 'Lithuania', 'Luxembourg', 'Malta', 'Netherlands', 'Poland', 'Portugal', 'Romania', 'Slovakia', 'Slovenia', 'Spain', 'Sweden', 'UnitedKingdom'); 

if(in_array($DepartureCountry, $CountrysEU) || in_array($ArrivalCountry, $CountrysEU)){ 
    echo 'EU'; 
} 
else { 
    echo 'NotEU'; 
} 

変数$ArrivalCountry$DepartureCountryを掻き取っている(カールPHP)彼らがEU内にいる場合は、EU加盟国の名前に合わせるように操作されます。 2つのVARの

Var_dump

$ArrivalCountry: string(13) "Russia" 
$DepartureCountry: string(20) "UnitedKingdom" 

私の変数とdoesn't in_array仕事は、それだけでNotEUを出力する理由。

注:私はこのような手動での変数定義した場合

$ArrivalCountry = 'Russia'; 
$DepartureCountry = 'UnitedKingdom'; 

をコードは完璧に動作します。

+1

は、符号化問題を見える、文字列のあなたの文字が2バイト以上になりそうです。 – Muhammad

+1

@Muhammadはいそれはエンコードの問題です –

答えて

2

あなたのコードを実行した後、私はあなたの両国が</span>を持っていることを知りました。エンコードに問題があるため、あなたには表示されず混乱していません。あなたはそれを動作させるためのコードの下に使用する必要が

: -

<?php 
header('Content-type: text/plain; charset=utf-8'); // add this encoding 
include('simple_html_dom.php'); // i think you already have this 

// Your CURL CODE 
$Disthtml = curl_exec($ch2); // get Data from curl 


$Countrys = str_get_html($Disthtml); 

$Countrys = $Countrys->find('span[class=regions regionsInt]'); 

//Get Departure Country 
$DepartureCountry = str_replace('</span>','',trim(end(explode(',', $Countrys[0])))); // remove unnecessary variable creation 

//Get Arrival Country 
$ArrivalCountry = str_replace('</span>','',trim(end(explode(',', $Countrys[1])))); // remove unnecessary variable creation 


$CountrysEU = array('Austria', 'Belgium', 'Bulgaria', 'Croatia', 'Cyprus', 'CzechRepublic', 'Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary', 'Ireland', 'Italy', 'Latvia', 'Lithuania', 'Luxembourg', 'Malta', 'Netherlands', 'Poland', 'Portugal', 'Romania', 'Slovakia', 'Slovenia', 'Spain', 'Sweden', 'United Kingdom'); 

if(in_array($ArrivalCountry, $CountrysEU) || in_array($DepartureCountry, $CountrysEU)){ 
    echo 'EU'; 
} 
else { 
    echo 'NotEU'; 
} 
関連する問題