Задать вопрос
  • Как удалить &thinsp и подобное из строки?

    @hisoka_a_little_coder Автор вопроса
    if($document->first('.a0t8.a0u') == null){ 
                    for($i = 0; $i <= $data_number; $i++){
                    //заголовок
                    
                    $title = $document->find('.a0c6.a0c9.a0c8')[$i]->first('.a0s9')->find('a')[1]->text();
                    
                    $titles_oz[] = $title;
                    sleep(rand(2,6)); //рандомная задержка(чтобы не банили)
    
                    //цена со скидкой 
                    $price = $document->find('.a0c4')[$i]->first('.a0s9')->first('.b5v4')->first('span')->text();
                    sleep(rand(2,6)); //рандомная задержка(чтобы не банили)
    
                    //Цена без скидки
                    if($document->find('.a0c6.a0c9.a0c8')[$i]->first('.a0s9')->first('.b5v4')->find('span')[1]){
                        $price_without_sale = $document->find('.a0c6.a0c9.a0c8')[$i]->first('.a0s9')->first('.b5v4')->find('span')[1]->text(); 
                    }else{
                        $price_without_sale = $price;
                    }
                    $prices_oz[] = $price;
                    $prices_without_sale_oz[] = $price_without_sale;
                    sleep(rand(2,6)); //рандомная задержка(чтобы не банили)
    
                    //ссылка на товар
                    $link = $document->find('.a0c4')[$i]->first('.a0s9')->find('a')[1]->attr('href');
                    $link = substr($link, 1); // вырезаем / в начале строки
                    $link = $url . $link;
                    $links_oz[] = $link;
                    sleep(rand(2,6)); //рандомная задержка(чтобы не банили)
    
                    //картинка товара
                    $img = $document->find('.a0c4')[$i]->first('.a0i4')->first('.a0i7')->first('img')->attr('src');
                    $images_oz[] = $img;
                    sleep(rand(2,6)); //рандомная задержка(чтобы не банили)
    
                    // // //получение  скидки
                    if($price_without_sale != $price){
                        echo $price_without_sale . '<br>';
                        echo $price_without_sale = htmlspecialchars($price_without_sale);
                        echo (int) str_replace(['&thinsp', '₽', ' '], '', $price_without_sale). '<br>';
                        //echo $price_without_sale = preg_replace('~<((?!iframe|canvas)\w+)[^>]*>(?:\s*(?:<br \/>|&nbsp;|&thinsp;|&ensp;|&emsp;|&#8201;|&#8194;|&#8195;)\s*)*<\/\1>~iu', "", $price_without_sale);
                        
                        echo $onep = ("$price_without_sale" / 100) . '<br>';
                        echo $two = $price / $onep. '<br>';
                        echo $percent = 100 - $two. '<br>';
    
                        //приводим процент в красивый вид
                        echo $percent = round($percent, 0). '<br>';
                        echo  $percent.= "%". '<br>';
                        $percents_oz[] = $percent;
                        }else{
                            $percents_oz[] = '-';
                        }
    Для парсинга использую DiDom
    Вот откуда берется:
    602406611beff543629933.jpeg
  • Как удалить &thinsp и подобное из строки?

    @hisoka_a_little_coder Автор вопроса
    Дмитрий, Могу кинуть код получения $price_without_sale и показать откуда оно берется и вытаскивается
  • Как удалить &thinsp и подобное из строки?

    @hisoka_a_little_coder Автор вопроса
    Дмитрий, Аналогично, все тоже самое
  • Как удалить &thinsp и подобное из строки?

    @hisoka_a_little_coder Автор вопроса
    Дмитрий,
    1 499 ₽
    1
    0.01
    100
    0
    0
    0
    %

    Все равно не то...
    echo $price_without_sale . '<br>';
                        echo (int) str_replace(['&thinsp', '₽', ' '], '', $price_without_sale). '<br>';
                        //echo $price_without_sale = preg_replace('~<((?!iframe|canvas)\w+)[^>]*>(?:\s*(?:<br \/>|&nbsp;|&thinsp;|&ensp;|&emsp;|&#8201;|&#8194;|&#8195;)\s*)*<\/\1>~iu', "", $price_without_sale);
                        
                        echo $onep = ("$price_without_sale" / 100) . '<br>';
                        echo $two = $price / $onep. '<br>';
                        echo $percent = 100 - $two. '<br>';
    
                        //приводим процент в красивый вид
                        echo $percent = round($percent, 0). '<br>';
                        echo  $percent.= "%". '<br>';
                        $percents_oz[] = $percent;
                        }else{
                            $percents_oz[] = '-';
                        }
  • Как удалить &thinsp и подобное из строки?

    @hisoka_a_little_coder Автор вопроса
    я пробовал через эту функцию, но оно не удаляется
  • Как удалить &thinsp и подобное из строки?

    @hisoka_a_little_coder Автор вопроса
    Дмитрий, не могли бы вы мне помочь? Мне нужно вывести процент скидки, но проблема в том, что числа больше 1000 не обрабатываются, ибо перед 1 стоит &thinsp. Вот какие операции я совершаю :
    if($price_without_sale != $price){
                        echo $price_without_sale . '<br>';
                        echo $price_without_sale = str_replace(['&thinsp', '₽'], '', $price_without_sale). '<br>';
                        
                        echo $price_without_sale = intval($price_without_sale). '<br>';
                        //echo gettype($price_without_sale);
                        
                        echo $onep = ("$price_without_sale" / 100) . '<br>';
                        echo $two = $price / $onep. '<br>';
                        echo $percent = 100 - $two. '<br>';
    
                        //приводим процент в красивый вид
                        echo $percent = round($percent, 0). '<br>';
                        echo  $percent.= "%". '<br>';
                        $percents_oz[] = $percent;
                        }else{
                            $percents_oz[] = '-';
                        }

    Echo стоят что бы видеть как меняется число, и вот что выводится:
    1 499 ₽
    1 499 
    1
    string0.01
    100
    0
    0
    0
    %
  • Как вывести элементы массива в табличку?

    @hisoka_a_little_coder Автор вопроса
    У меня есть html таблица и туда нужно выводить элементы
  • Как правильно отправлять header, get и post запросы при парсинге, чтобы не банили?

    @hisoka_a_little_coder Автор вопроса
    rPman, Благодарю вас, буду углубляться в эту тему
  • Как правильно отправлять header, get и post запросы при парсинге, чтобы не банили?

    @hisoka_a_little_coder Автор вопроса
    Я не очень понимаю, как это можно реализовать. Можете кинуть каких нибудь примеров?
  • Как преобразовать строку в массив?

    @hisoka_a_little_coder Автор вопроса
    galaxy, Спасибо, все работает
  • Как преобразовать строку в массив?

    @hisoka_a_little_coder Автор вопроса
    $(document).ready(function(){$('.rfbeb').html(8080);$('.r425f').html(32108);$('.r1822').html(8087);$('.r3d2b').html(8000);$('.r3815').html(999);$('.r519a').html(80);$('.r42ef').html(41310);$('.re82e').html(3128);$('.rb432').html(8081);$('.r0e61').html(37738);$('.ra6de').html(37699);$('.ra9f1').html(3137);$('.rccf7').html(55443);$('.re0a4').html(44938);$('.raff2').html(32231);$('.r091e').html(61047);$('.r9346').html(35709);$('.recc9').html(57797);$('.r0b0d').html(60020);$('.re738').html(33630);$('.rb99d').html(8181);$('.r9a3a').html(53281);$('.r0de3').html(32378);$('.re7b7').html(59152);$('.r9577').html(65205);$('.r48e7').html(20183);$('.r0877').html(38278);$('.rbcf8').html(41878);$('.r8367').html(23500);$('.rd06e').html(37475);$('.r0b85').html(21231);$('.r1667').html(443);$('.refa4').html(41344);$('.rddc4').html(3129);$('.re2c0').html(31583);$('.re5f8').html(8888);$('.re9dc').html(9999);$('.r36da').html(36681);$('.rc5ae').html(59144);$('.rc3a7').html(34273);$('.r42b6').html(1000);$('.rdfaf').html(40387);$('.r33b8').html(45277);$('.r1576').html(46611);$('.r7f68').html(52479);$('.rf494').html(44612);$('.ra5c5').html(1081);$('.r8ff7').html(2020);$('.ree20').html(42119);$('.r30b8').html(8040);$('.r7458').html(8001);$('.r2eb1').html(53410);$('.rbdc3').html(51489);$('.rdf28').html(21213);$('.r7cab').html(61279);$('.rce34').html(9991);$('.r6145').html(8385);$('.rda13').html(8193);$('.r56ff').html(40014);$('.r00e1').html(8118);$('.r1735').html(33694);$('.rece0').html(6666);$('.ra766').html(82);$('.ra0d1').html(83);$('.r6927').html(3888);$('.r6b18').html(51166);$('.rce64').html(46317);$('.rf342').html(58137);$('.r6344').html(31785);$('.r1b29').html(9090);$('.rf70b').html(47324);$('.re914').html(5836);$('.r0031').html(8686);$('.r8721').html(39589);$('.rf16b').html(37717);$('.r8e2a').html(42535);$('.r4c77').html(57853);$('.rb2ba').html(33741);$('.rfc74').html(30716);$('.r43d0').html(53758);$('.rff0b').html(8090);$('.r04ce').html(56145);$('.rfd4e').html(30677);$('.r3e3f').html(48458);$('.r86fa').html(56644);$('.rf2c2').html(31398);$('.r9e84').html(56167);$('.r1ad1').html(48515);$('.r57ab').html(47615);$('.r5bfb').html(46669);$('.rcb10').html(45282);$('.r9ac2').html(45578);$('.rbbc2').html(54018);$('.rae0c').html(42928);$('.r2704').html(3127);$('.r74c3').html(52271);$('.rb54d').html(43631);$('.r4dfb').html(39330);$('.r39f2').html(9001);$('.r6419').html(55357);$('.r14a5').html(39272);$('.rae73').html(50128);$('.rebf4').html(47744);$('.r141b').html(46340);$('.rd1b3').html(47548);$('.r3177').html(47448);$('.r55a9').html(41932);$('.ra355').html(38081);$('.r5ea3').html(47029);$('.rb2cd').html(45729);$('.r3330').html(44438);$('.r8d82').html(32040);$('.r2eb7').html(50330);$('.r198d').html(50782);$('.r4bef').html(8082);$('.re36a').html(21776);$('.r9f15').html(3130);$('.rfada').html(35659);$('.re81d').html(36739);$('.r0425').html(8889);$('.r7701').html(38510);$('.re0b7').html(35953);$('.r57f8').html(41948);$('.r9c12').html(30930);$('.r0f61').html(58893);$('.rcb70').html(52004);$('.r9d3f').html(33831);$('.r25e5').html(48122);$('.re662').html(58198);$('.rda6c').html(8908);$('.r5082').html(30865);$('.r67ca').html(33855);$('.rdfb4').html(42113);$('.re65a').html(41201);$('.rb1a3').html(32479);$('.r3a34').html(4550);$('.rc6cc').html(38472);$('.rdcca').html(36036);$('.ra7e8').html(44505);$('.re333').html(35558);$('.r8160').html(45263);$('.re759').html(41691);$('.reba5').html(9081);$('.r27e7').html(55138);$('.r6f3a').html(43496);$('.r4e56').html(54675)});
  • Как преобразовать строку в массив?

    @hisoka_a_little_coder Автор вопроса
    $myPacker = new JavaScriptUnpacker();
    
    $unpacked = $myPacker->Unpack($js_f_text);
    echo $unpacked;
    
    
    $unpackedv2 = str_replace('$$', '', $unpacked);
    $unpackedv2 = str_replace('$', "", $unpackedv2);
    $unpackedv2 = str_replace(['(document).ready(function(){', '})'], '', $unpackedv2);
    $unpackedv2 = str_replace('.html', '', $unpackedv2);
    $unpackedv2 = str_replace(';', "    ", $unpackedv2);
    eval("\$a = [$unpackedv2];");
    var_dump($a);

    кратко расскажу что тут происходит, unpacked это распакованные данные из файла js, после я обрезаю все лишнее и заношу в переменную unpackedv2 она выводит: 6015c52778a36763417466.jpeg
    после я прописываю ваш код и выводится ошибка: Fatal error: Uncaught Error: Call to undefined function .rfbeb() in C:\OpenServer\domains\trenphp.loc\libs\my_classes_for_parsing\ProxyParser.php(54) : eval()'d code:1 Stack trace: #0 C:\OpenServer\domains\trenphp.loc\libs\my_classes_for_parsing\ProxyParser.php(54): eval() #1 {main} thrown in C:\OpenServer\domains\trenphp.loc\libs\my_classes_for_parsing\ProxyParser.php(54) : eval()'d code on line 1
  • Как преобразовать строку в массив?

    @hisoka_a_little_coder Автор вопроса
    Собственно, вот код:
    $unpackedv2 = str_replace('$$', '', $unpacked);
    $unpackedv2 = str_replace('$', "", $unpackedv2);
    $unpackedv2 = str_replace(['(document).ready(function(){', '})'], '', $unpackedv2);
    $unpackedv2 = str_replace('.html', '', $unpackedv2);
    $unpackedv2 = str_replace(';', "    ", $unpackedv2);
    echo $unpackedv2;
    $unpackedv2 = strval($unpackedv2);
    eval("\$a = [$unpackedv2];");
    var_dump($a);

    и что выводится: 6015c2ca32be3535844424.jpeg

    помогите, пожалуйста
  • Как преобразовать строку в массив?

    @hisoka_a_little_coder Автор вопроса
    Там очень много элементов, но при выводе это выглядит вот так:
    ('.rf55f')=>(8080),
    ('.r030d')=>(32108),
    ('.r1201')=>(80),
    ('.r93c4')=>(23500),
    ('.rd3ea')=>(999),
    ('.r758c')=>(8081),
    ('.re010')=>(3128),
    ('.r0559')=>(53281),
    ('.r2902')=>(37738),
    ('.r1dda')=>(1347),
    ('.r37ea')=>(21231),
    ('.r6a32')=>(37699),
    ('.rf5ea')=>(3137),
    ('.r367f')=>(8090),
    ('.r69b0')=>(59570),
  • Как преобразовать строку в массив?

    @hisoka_a_little_coder Автор вопроса
    eval("\$a = [$unpackedv2];");
    var_dump($a);

    Выводит: syntax error, unexpected '<', expecting ']' in (путь к файлу) : eval()'d code on line 1
  • Как преобразовать строку в массив?

    @hisoka_a_little_coder Автор вопроса
    Если я вставляю эту переменную в строку после eod . То ничего не работает, как это исправить?
  • Как преобразовать строку в массив?

    @hisoka_a_little_coder Автор вопроса
    А как реализовать, если сама строка находится в переменной? Прошу прощения за глупый вопрос
  • Как работать с базами данных заказчиков?

    @hisoka_a_little_coder Автор вопроса
    Спасибо за ответ
  • Как работать с базами данных заказчиков?

    @hisoka_a_little_coder Автор вопроса
    Спасибо за ответ