DOMDocument と XPATH で解析する cURL でデータをフェッチします。strlen() は不規則なカウントを与えています。
導入コード:
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->loadHTML($data);
$xpath = new DOMXpath($dom);
必要なデータを取得し、うまく機能しましたが、今度は 2 つの文字列を比較する必要があります。オリジナルは - タグから<li>
直接取得されます。<span>
解析されるのは、結合された4 つまたは 5 つの です。
$original = $i[$n]['full'];
$parsed = $i[$n]['value'].$i[$n]['type'].$i[$n]['name'].$i[$n]['extra'];
echo $original."<br>";
echo $parsed."<br><br>";
echo strlen($original)."<br>";
echo strlen($parsed)."<br><br>";
与える:
4 -5 boneless chicken breasts
4-5Boneless chicken breasts
70
27
すべてのスペースを置き換えたり、mb_strlen を別のエンコーディングで試したり、文字列に型キャストしたりして、いじり始めましたが、すべて役に立ちませんでした。
$replace = array(' ',',');
$mod_original = str_replace($replace,'',$original);
$mod_parsed = str_replace($replace,'',$parsed);
var_dump($mod_original);
echo "<br>";
var_dump($mod_parsed);
echo "<br><br>";
echo mb_strlen($mod_original,'UTF-8')."<br>";
echo mb_strlen($mod_parsed,'UTF-8')."<br>";
結果:
string(62) "4-5 bonelesschickenbreasts"
string(25) "4-5Bonelesschickenbreasts"
62
25
何かがおかしい。str_replace は最後の空白を削除しません。
どんな助けでも大歓迎です。