| TCH (statz) | ![]() #1, Főfasz (10579) |
3251 | #4e45 | ^ | Idézet | Sat, 09 Nov 2019 22:01:51 +01 |
| 94.21.*.* |
|
*.pool.digikabel.hu |
| Hát ezt a bekérést felesleges külön PHP-ba tenni. Úgyis csak a termék száma szerepel benne, ha jól látom, úgyhogy elég egy sima összefűzés. A stringkeresést kb. így lehetne megcsinálni: function extract_pieces($text)
{
$pos = stripos($text, '<span class="amount-projektor">'); // kontener keresese
if ($pos !== false)
{
$pos += 31; // poziciovaltozot a kontener vegere
$posb = stripos($text, 'Brak', $pos); // hianycikk-e
if ($posb !== false)
{
return 0; // hianycikk
}
$poss = stripos($text, 'szt.', $pos); // "db" keresese
if ($poss !== false)
{
return (int)preg_replace
(
"/[^0-9]/", // a nem numerikus karaktereket
"", // kitakaritjuk
substr($text, $pos, $poss - $pos) // a kontener es a "db" kozotti szovegbol
);
}
}
return false;
}És ennek beadagolva a kódot, ki fogja kaparni a fent emlegetett HTML kód és a szt.közti számokat, vagy nullát ad vissza, ha van Brak, vagy hamisat ad vissza, ha nincs konténer, vagy darabszám-marker. (BTW, ha olyan szövegben keresel, aminél nem számít a kisbetű/nagybetű, akkor ne strpos()-t, hanem stripos()-t használj...) És akkor a kódod így módosul: <?php // ide a fenti fuggveny ini_set('display_errors',1); ini_set('display_startup_errors',1); error_reporting(E_ALL); $conn = mysqli_connect("localhost","szopjkecsket","fasz","buziwinfos"); if($conn){ $termekek = array(3074,3076,3077,3087,3116,3123,3127,3155,3160,3163,3170,3171,3172,3180,3179,3183,3185,3187,3189,3194,3195,3205,3218,3223,3233,3240,3239,3349,3248,3272,3273,3275,3294,3296,3293,3303,3313,3314,3312,3315,3326,3328,3327,3333,3335,3334,3342,3341,3348,3349,3347) $termekmenny = count($termekek); for ($i = 0; $i < $termekmenny; ++$i) { $termek = $termekek[$i]; $storage = extract_pieces(get_file_contents("urlabeszallitohoz" . $termek)); // ez nem 'file_get_contents()' veletlenul? if ($storage === false) { echo "nem letezik"; $result = mysqli_query($conn, "UPDATE `wp7k_wc_product_meta_lookup` SET `min_price` = '0' WHERE `wp7k_wc_product_meta_lookup`.`product_id` = $termek;"); } else if ($storage == 0) { $result = mysqli_query($conn, "UPDATE `wp7k_wc_product_meta_lookup` SET `stock_status` = 'outofstock' WHERE `wp7k_wc_product_meta_lookup`.`product_id` = $termek;"); // egy 'SET `stock_quantity`=0' nem kene ebbe a lekeresbe? } else { $result = mysqli_query($conn, "UPDATE `wp7k_wc_product_meta_lookup` SET `stock_quantity` = '$storage' WHERE `wp7k_wc_product_meta_lookup`.`product_id` = $termek;"); } echo ($result ? "siker" : mysqli_error($conn)); // egyebkent ez a 'siker'/error csak akkor jelent volna meg, ha van darabszam, mert a masik ket agban nem kezdtel semmit a $result-tal sleep(5); } }No, hát ha nem kúrtam el semmitetse, akkor ez így jó lesz. |