Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    stringa che non va in array

    Buongiorno, sto impazzendo...con questo script:

    foreach ($results[1] as $link)
    {
    $link = preg_replace('(^http://|/$)','',$link);
    #####qui ho una serie di link############

    $index=$index+1;
    if (strlen(stristr($link,$this->url))>0)
    {
    $found=true;
    $link_pos=$link;

    $link_ar[ ]="$link_pos";
    echo"$link_pos
    ";###qui mi stampa il link che a me interessa####

    break;
    }
    }

    $l_count_link_array=count($link_ar);
    echo"$l_count_link_array
    "; #####mi da 0 perchè non mi memorizza il link nell'array???
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Secondo me la fai un po' complicata. Correggimi se sbaglio su quelle che sono le intenzioni dello script:

    Dato in $results[1] un array di link, ovvero $results[1][0] contiene un http://aaaa/, $results[1][1] contiene http://bbbb/ e così via... verifichi se la stringa $this->url è presente all'interno di $link nel qual caso calcoli la lunghezza della sottostringa dalla stringa trovata fino alla fine della stringa in cui cerchi per vedere se maggiore di 0. In altri termini vuoi sapere se $this->ulr è contenuta in $link. Nel qual caso memorizzi in $link_ar[] il valore di $link ed interrompi il foreach. In link_ar carichi i nomi host.

    Io ho rimosso il break perché non capisco il senso di memorizzare in un array per poi bloccare alla prima occorrenza, ovvero l'array può avere al più un valore

    Mi sono permesso di modificare un poco il codice togliendo gli elementi inutili o rimasti appesi visto che forse hai strappato il codice ad una classe. Il tuo $this->url è per me $url e il codice che ti posto funziona senza problemi

    Codice PHP:
    $results[1]=array("http://www.pippo.com/","http://www.paperino.it/","http://www.paolinopaperino.org/");
    $url="paperino";

    $link_ar=array();
    foreach (
    $results[1] as $link)
        if (
    strpos($link$url)!==false) {
            
    $link_ar[] = $link preg_replace('(^[url]http://[/url]|/$)'''$link);;
            echo 
    "$link
    "
    ;
        }

    $l_count_link_array count($link_ar);
    echo 
    "$l_count_link_array
    "

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  3. #3

    Il tuo funziona il mio no

    Eccomi, e grazie per l'aiuto ma se lo porto nella classe non funziona ti posto la funzione originale:
    class KeywordPosition
    {
    var $url='';
    var $keywords='';
    var $maxPosition=1;
    function KeywordPosition($url,$keywords,$maxPosition)
    {
    $url=str_replace('http://www.','',$url);
    //$url=str_replace('www.','',$url);
    $this->url=$url;
    $this->keywords=$keywords;
    if($maxPosition<1)
    $maxPosition=1;
    $this->maxPosition=$maxPosition;
    }
    function GetPosition()
    {
    if(isset($this->url) && isset($this->keywords))
    {
    $make_url = 'http://www.google.it/search?hl=it&q=' . urlencode($this->keywords) . '&start=';
    $index=0; // counting start from here
    $found=false; // set this flag to true when position found
    for ($page = 0; $page < $this->maxPosition; $page++)
    {
    if($found==true) // break the loop when position found
    break;
    $readPage = fopen($make_url . $page . 0 ,'r');
    $contains = '';
    if ($readPage)
    {
    while (!feof($readPage))
    {
    $buffer = fgets($readPage, 4096);
    $contains .= $buffer;
    }
    fclose($readPage);
    }
    $results = array();
    preg_match_all('/a href="([^"]+)" class=l.+?>.+?<\/a>/',$contains,$results);
    foreach ($results[1] as $link)
    {
    $link = preg_replace('(^http://|/$)','',$link);
    $index=$index+1;
    if (strlen(stristr($link,$this->url))>0)
    {
    $found=true;
    echo"$link";
    $link_a[ ]="$link";
    break;
    }
    }
    }
    if($found==true)
    return $index;
    else
    return -1;
    }
    return -1;
    }
    }

    il problema è che se vado a visualizzare la var link me la visualizza se la inserisco nell'array l'array è vuoto. Non riesco a capire perchè!!!

  4. #4

    niente

    non capisco, suggerimenti?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.