Jump to content
php.lv forumi

kapec gan ne

Reģistrētie lietotāji
  • Posts

    42
  • Joined

  • Last visited

Posts posted by kapec gan ne

  1. 
    $file = '0.txt';
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_COOKIEJAR, $file);
    curl_setopt ($ch, CURLOPT_COOKIEFILE, $file);
    curl_setopt ($ch, CURLOPT_ENCODING, 'gzip');
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    $out = curl_exec ($ch);
    curl_close($ch);
    ..
    

    vispar tada problema, ka curl neko taja faila neieraksta :{ ieraksta vienkasi atmina vai kur citur un viss

  2. function func1($arr){
    $hArr = array();
    $results = array();
    $count=0;
    for ($i = 0; $i < count($arr); $i++) {
       	$h = curl_init();
       	curl_setopt($h,CURLOPT_URL,$arr[$i]);
       	curl_setopt($h,CURLOPT_HEADER,0);
       	curl_setopt($h,CURLOPT_RETURNTRANSFER,1);
       	array_push($hArr,$h);
    
       	if($count>9 || $i==count($arr)-1){
           	$mh = curl_multi_init();
           	print_r($hArr);
    
           	foreach($hArr as $k => $h){
               	curl_multi_add_handle($mh,$h);
           	}
    
           	$running = null;
    
           	do{
               	curl_multi_exec($mh,$running);
           	}while($running > 0);
    
      //.....
           	foreach($hArr as $k => $h){
               	curl_multi_remove_handle($mh,$h);
           	}
           	curl_multi_close($mh);
           	$hArr = array();
           	$count = 0;
       	}
    
    
      	$count++;
    
    
    }
    return $results;
    }
    
    

    strada ciesami :P

  3. $arr masiva glabajs peimeram 3000 linku

    vajadzetu partaisit funkciju ta, lai vertu vala tos 3000 linkus pa 10, nevis uzreiz visus :)

    function func1($arr){
    $hArr = array();
    $results = array();
    foreach($arr as $val){
       	$h = curl_init();
       	curl_setopt($h,CURLOPT_URL,$val);
       	curl_setopt($h,CURLOPT_HEADER,0);
       	curl_setopt($h,CURLOPT_RETURNTRANSFER,1);
       	array_push($hArr,$h);
    }
    $mh = curl_multi_init();
    foreach($hArr as $k => $h)
       	curl_multi_add_handle($mh,$h);
    
    $running = null;
    do{
       	curl_multi_exec($mh,$running);
    }while($running > 0);
    foreach($hArr as $k => $h){
       	$res = curl_multi_getcontent($h);
                   //..
           	}
    foreach($hArr as $k => $h){
       	curl_multi_remove_handle($mh,$h);
    }
    curl_multi_close($mh);
    return $results;
    }
    

     

    EDIT: kaut ka apmeram sadi.. neesmu vel parbaudijis

    function func1($arr){
    $hArr = array();
    $results = array();
    $count=0;
    for ($i = 0; $i < count($arr); $i++) {
       	$h = curl_init();
       	curl_setopt($h,CURLOPT_URL,$arr[$i]);
       	curl_setopt($h,CURLOPT_HEADER,0);
       	curl_setopt($h,CURLOPT_RETURNTRANSFER,1);
       	array_push($hArr,$h);
    
           if($count>9 || $i==count($arr)-1){
           	$mh = curl_multi_init();
           	foreach($hArr as $k => $h)
               	curl_multi_add_handle($mh,$h);
    
           	$running = null;
    
           	do{
               	curl_multi_exec($mh,$running);
           	}while($running > 0);
    
           	foreach($hArr as $k => $h){
        			$res = curl_multi_getcontent($h);
        			//..
           	}
    
           	foreach($hArr as $k => $h){
               	curl_multi_remove_handle($mh,$h);
           	}
    
               curl_multi_close($mh);
           	$count = 0;
       	}
      	$count++;
    }
    return $results;
    }
    

  4. index.php lapā ir:<pre class="prettyprint">require 'header.php';</pre>

    headeer.php lapā ir:

    <pre class="prettyprint">header('Location: http://site.com');exit;</pre>

    Līdz ar to - skripts pārtrauks savu darbību pie exit un nekāda linka vispār nebūs ;)

    noteikti visu manis rakstito neizlasiji un uzrakstiji kaut ko pilnigi nevajadzigu :D

  5. ir index.php fails

    <?php
    require 'header.php';
    echo '<a href="http://site.com">link</a>';
    ?>
    

    un header.php

    <?php
    header('Location: http://site.com');
    exit;
    ?>
    

    index - http://localhost/

     

    1. ja lietotajs atverot lapu tiktu paradresets uz citu lapu no header('Location: http://site.com'); kads bus http_referer (ja bus vispar)

    2. kads bus http_referer, ja index fails butu bez ta header.php un lietotajs parietu uz site.com vienkasi pa linku

     

    nevaretu ta but ka pirmaja gadijuma referer tiek sutis ka header.php?

  6. Sveiki! piem., no db tiek izvaditi ieraksti (post-8110-0-49974500-1340203703_thumb.jpg) vini tiek kartoti pec lauka sort(int)

    ka lai izveido tadu listu, lai varetu vienkasi ar drag un drop mainit ierakstu kartibu un saglabat jauno vietu db pec izmainam:)

  7. Te varētu būt 2 iemesli:

    1) Tu ciklā veido entās cURL sesijas. Tā vietā var izmantot vienu,pirms cikla sadefinējot headerus + opcijas,un tālāk mainot tikai url:

    function move($url)
    {
    global $ch;
    
    curl_setopt($ch, CURLOPT_URL, $url);
    return curl_exec ($ch);
    }
    foreach($urls as $url)
    {
     $content = move($url);
    }
    

     

    2) Return atrodas pirms

    ob_end_clean();
    curl_close ($curl);
    unset($curl);
    

    Līdz ar to beigas neizpildās,un konekcijas netiek slēgtas.

    paldies! primais variants izskatās ka būs īstais :)

    curl_close pirms return neko nemainija...

  8. sveiki! problēma tāda curl izpildoties ciklā nem vairāk un vairāk ram lidz tas beidzas :{ nepabeidzot to

     

    pati funkcija kuru izmantoju ciklā:

     

    function grab($url = ''){
    if(!$url)
    return 0;
    $curl = curl_init();
    $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
    $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
    $header[] = "Cache-Control: max-age=0";
    $header[] = "Connection: keep-alive";
    $header[] = "Keep-Alive: 300";
    $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    $header[] = "Accept-Language: en-us,en;q=0.5";
    $header[] = "Pragma: ";
    
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1');
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($curl, CURLOPT_REFERER, false);
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 300);
    ob_start();
    return curl_exec ($curl);
    ob_end_clean();
    curl_close ($curl);
    unset($curl);
    }

    kapec curl neatbrivo atminu? stav memory_limit -1 un izmanto 2GB

  9. Es darītu tā... labojam mani, ja tā nav forši.

     

    Divas jaunas tabulas:

     

    tags

    tag_rels

     

    tags: id, tag.

    tag_rels: id, tag_id, item_id.

     

    ...kur item_id būs video_id, tava gadījumā (tabula videos, kur video_id ir pk).

     

    Nestāstīšu sīkāk; ceru, ka domu uztvēri.

    ok meginasu taisit pec si :)

  10. paldies! nesapratu ko v3rb0 ar rakstito domaja :D iesu burties

     

    EDIT: kās var uzrakstīt vienu update query.. neizdodas apdeitot

    $entry->exec("update ips set time='$now' where id=1")
    

     

    EDIT: sapratu... no sakuma vajadzeja ieladet to

    #

  11. man to laiku vajag tam lai redzētu kad tika ierakstīts šis ip

    db nevaru izmantot

    <?php
    function ip_valid($ip = ''){
    $d = explode('.', $ip);
    for ($x = 0; $x < 4; $x++)
    if (!is_numeric($d[$x]) || ($d[$x] < 0) || ($d[$x] > 255))
    return false;
    return $ip;
    }
    
    if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && ip_valid($_SERVER['HTTP_X_FORWARDED_FOR'])){
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    elseif($_SERVER['REMOTE_ADDR']){
    $ip = $_SERVER['REMOTE_ADDR'];
    }
    else{
    die('Unknown IP');
    }
    
    $log = 'log.txt';
    $now = time();
    $ip = ip2long($ip);
    $tmp = array();
    $count = 1;
    $in = fopen ("log.txt", "r+");
    while ($block = fread($in, 22)) {
    $tmp[] = $block;
    if($block == "2130706433|1314972657\n")
    {
    break;
    }
    $count++;
    }
    fclose ($in);
    ?>
    

    piem. atrodu rindu ($count norāda uz rindas numuru).

    ar explode atdalu laiku no ip un salīdzinu kā vajag

    kā man tagad pāriet uz to rindu? fseek($in, 22*$count) ?

     

    EDIT: varētu vispār ar ftruncate notīrīt visu un $tmp array'ā veikt izmaiņas un tad ierakstīt pa jaunam visu...

    būs apmēram 8000 rindu tāpec diezvai tas notiks pietiekami atri

  12. doma ir tāda... glabāt ip adreses failā kopā ar laiku

    $now = time(); - laiks

    $ip = ip2long($_SERVER['REMOTE_ADDR']); - ip

    viss glabātos apmēram šādi failā (ip|time)

    2130706433|1313131313\n

    2130706434|1313131314\n

    2130706435|1313131315\n

    kā labāk nolasīt failu, atrast rindu ar sekojošo ip adresi (ja tada ir) un tad ja laiks $now - time > 3600 tad izdzēst vinu no faila?

×
×
  • Create New...