Newsgroup: it.comp.www.php
Titolo: come far grabbare le immagini che hanno gli spazi ?

non grabba le immagini con gli spazi
function imageGrabber($url, $unique = 1)
{
    $startTag = '<img';
    $srcTag = 'src=';
    $endTag = '>';
    $counter = 0;
    if(!is_array($url))
    {
        $url = array($url);
    }
    if ($unique !== 0 && $unique !== 1)
    {
        printf('Invalid parameter for $unique. The parameter must be either
1 or 0.');
        exit();
    }
    foreach ($url as $value)
    {
        $contents = file_get_contents($value);
        $domain = $value;
        $domain = substr($domain, 7);
        $pos = stripos($domain, '/');
        if ($pos)
        {
            $domain = substr($domain, 0, stripos($domain, '/'));
        }
        while ($contents)
        {
            set_time_limit(0);                                    # In case
we have several large pages
            $quotes = array('"', "'", "\n");
            $contents = str_replace($quotes, '', $contents);    # Strip "
and ' as well as \n from input string
            $contents = stristr($contents, $startTag);            # Drop
everything before the start tag '<img'
            $contents = stristr($contents, $srcTag);            # Drop
everything before the 'src'
            $endTagPosition = stripos($contents, $endTag);        # Position
of the end tag '>'
            $src = substr($contents, 4, $endTagPosition - 4);    # Get
everything from src to end tag --> 'src="path" something>'
            $spacePosition = stripos($src, ' ');                # Position
of space (if it exists)
            if ($spacePosition !== false)
            {
                $src = substr($src, 0, $spacePosition);            # Drop
everything after space, keeping 'src="path"'
            }
            $questionMarkPosition = stripos($src, '?');
            if ($questionMarkPosition !== false)
            {
                $src = substr($src, 0, $questionMarkPosition);    # Remove
any part after a '?'
            }
            $contents = stristr($contents, $endTag);            # Drop
everything before the end tag '>'
            if ($src)
            {
                if (stripos($src, '/') === 0)
                {
                    $src = 'http://'.$domain.$src;                # Relative
link, so add domain before '/'
                }
                else
                {
                    if (stripos($src, 'http://') !== 0 && stripos($src,
'https://') !== 0 && stripos($src, 'ftp://') !== 0)
                    {
                        $src = 'http://'.$domain.'/'.$src;        # Relative
link, so add domain and '/'
                    }
                }
                $paths[] = $src;
            }
        }
        if ($unique === 1)
        {
            $results[] = array_unique($paths);        # Create final array
with unique $paths
        }
        else
        {
            $results[] = $paths;                    # Create final array
with all $paths
        }
        $paths = array();                            # Reset links
        $counter++;                                    # Increment counter
    }
    return $results;
}
/**
* This function will downlaod and save all images on the specified
directory.
*
* @param array $results
* @param sting $localPath
*/
function saveImages($results, $localPath = './c')
{       
    foreach ($results as $v)
    {           
        foreach ($v as $value)
        {
            set_time_limit(0);
 
            $path = $value;
 
            if (!file_exists($localPath))
            {
                mkdir($localPath);                    # Create the dir if it doesn't exist
            }
 
            $localFile = $localPath.basename($path);
 
            if (!copy($path, $localFile))
            {
                   echo "<font color=red>Failed to copy $path</font><br>";
            }
            else
            {
                echo "<font color=blue>Successfully copied
$path</font><br>";
 
       }
        }
    }
}
?>
<html>
<head>
</head>
<body>
    <?php
        $array = array('
http://127.0.0.1/html_parser-2003-12-14/test.html'
);
        $links = imageGrabber($array);
        saveImages($links);
    ?>
</body>
</html>

 non grabba le immagini con gli spazi
nn ho guardato il tuo sorgente non ciavevo voglia :-D
cmq sostituisci gli spazi con %20 o qualcosa del genere.
Senza nome-->Senza%20nome.jpg
byez

 non grabba le immagini con gli spazi
E allora?
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

 E allora?
si puo sapre che cosa vuole ?
la prego cortesemente di non relicare con messaggi inutili ai miei post
se le sue risposte sono "il manuale questo sconosciuto, E allora,
ecc...".
Se ha intenzione di replicare ai miei post o mette una soluzione o
non interessano a nessuno. Visto che i post vengono archiviati da Google
possono servire anche ad altri. Una risposta inutile e' inutile per tutti.
la ringrazio per l'attenzione


 byez

 Una risposta inutile e' inutile per tutti.
Ma sopratutto per lei visto che il post e' suo.
P.S.
Il suo codice' e' pessimo. Le suggerisco vivamente di leggere il
manuale per capire come si dovrebbe programamre sopratutto visto che
usa decine di righe di codice al posto di funzioni standard fornite dal
PHP.



bene allora sa solo mettere spazzatura a chi non le va a genio perche
posta del codice al contrario di lei che non posta del codice


 posta del codice al contrario di lei che non posta del codice
Forse e' meglio che rivede anche l'italiano ...


Credo proprio che Setec Astronomy  non abbia proprio ne arte ne parte,
visto che risponde ovunque con risposte senza senso e soluzioni
inesistenti. Penso che il computer in mano tua sia solo un gioco per
farti passare un po del tuo tempo, probabilmente se usassi meglio il
tuo tempo invece di dare risposte insensate potresti migliorare la tua
conoscenza in quello che da come vedo è solo una bolla di sapone e
nulla di più.

 vedo č solo una bolla di sapone e nulla di piů.
Convinto tu ...


     }
[..]
non ti offendere..
ma IMHO sarebbe meglio se tu ristudiassi le basi sia di PHP sia della
programmazione in generale e gia che ci sei anche un salto su 
w3c.org
 per
ripassare l'HTML..
-- 
www.iuz-lab.info

 inesistenti.
A dire il vero, le sue risposte sono sempre sensate, mentre di soluzioni
inesistenti (?) non ricordo ne abbia mai date.
Il fatto è che Setec, *di fronte a una certa tipologia di domande*,
offre spesso risposte tanto ineccepibili quanto stringate. Tant'è che
spesso sono dei semplici link al manuale.
Se magari ciò dimostra, ai tuoi occhi, che tali risposte siano
insensate, ai miei occhi dimostra invece tre cose: 1) che chi pone la
domanda, pone una questione che avrebbe trovato risposta con una
semplice ricerca nel manuale online; 2) che Setec vorrebbe evitare di
trasformare il ng in un sostituto del manuale; 3) che tali risposte date
da Setec offrono, a chi ha posto la domanda, l'opportunità di non dover
richiedere al ng ogniqualvolta si trova di fronte ad una questione
risolvibile tramite il manuale.
E' quest'ultimo secondo me il problema maggiore, poiché chi pone la
domanda lo fa spesso perché non vuole "perdere tempo" nel leggersi il
manuale: prima si risolve immedatamente il problema che si ha davanti, e
poi, se se ne ha voglia, si cerca di capire come sia stato risolto...
Detto in altri termini, Setec offre gli strumenti coi quali emanciparsi
dal dipendere in futuro dagli altri per ogni questione, mentre chi pone
la domanda spesso vuole ottenere solo i frutti, anche a costo di non
capire come siano stati prodotti. :-)
Personalmente, termino la sviolinata ;-) con un ringraziamento a tutti
coloro che aiutano il prossimo senza chiedere alcuna retribuzione (ed è
lo spirito di Usenet, del resto), sia a coloro i quali offrono i frutti,
sia a coloro che offrono i mezzi per produrre tali frutti. :-)
Saluti.
T.