• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Aus einer URL etwas auslesen ?

maria1

Mitglied
Hallo,

Ist es möglich aus deiner URL angenommer "www.meineseite.de/file/mein_file.doc" den namen auszulesen?
Also mein_file ?

ich hab den link in der variable $link aus der Datenbank.

Dankeschön :)
 
Ok und würde das gehen ,

Der link führt zu einer news seite . Die hat den titel des artikels in einem div namen ueberschrift.

Kann ich das div per get_files_conten oder so auslesen ?
 
Hängt von deiner Serverkonfiguration ab (allow_url_fopen glaube ich). Besser ist das Abrufen via cURL oder Sockets. Wenn du das Rad nicht neu erfinden möchtest, sowas gibt es bestimmt auch schon fertig. Eine sehr gute, aber vielleicht etwas zu komplizierte Komponente ist auch Zend_Http.

An den konkreten String im ausgelesenen Quellcode kommst du am besten über einen echten DOM-Parser wie DOMDocument.

- PHP: DOMDocument - Manual

Allerdings ist zu erwähnen, dass Scraping nicht ganz unproblematisch ist.

- Screen Scraping
 
Es gibt ne api !

Problem ist nur das sie nicht funktioniert

URL http://api.filesonic.com/link?method=getInfo&ids=3999034095.xml

W
enn ich filename auslesen will kommt diese fehlermeldung


Code:
[B]Warning: simplexml_load_file() [function.simplexml-load-file]: http://api.filesonic.com/link?method=getInfo&ids=3999034095.xml:1: parser error : Start tag expected, '<' not found in[B]C:\test.php on line [B]4

[B]Warning: simplexml_load_file() [function.simplexml-load-file[URL="http://localhost/scripts/links/jd/function.simplexml-load-file"][/URL]]: {"FSApi_Link":{"getInfo":{"response":{"links":[{"id":3999034095,"filename":"cook in [B]C:\test.php on line [B]4

[B]Warning: simplexml_load_file() [function.simplexml-load-file[URL="http://localhost/scripts/links/jd/function.simplexml-load-file"][/URL]]: ^ in [B]C:\test.php on line [B]4[/B][/B][/B][/B][/B][/B][/B][/B][/B]

Code:

PHP:
    <?php

   $xml = simplexml_load_file('http://api.filesonic.com/link?method=getInfo&ids=3999034095.xml');
echo $xml;
?>

auch echo $xml->filename[0]; hilft nicht ...
zufällig ahnung von xml ? xD
 
Versuch erst mal ob das hier geht:

Code:
[COLOR=#000000][COLOR=#FF8000]// Liest eine Datei in ein Array. Hier gehen wir über HTTP, um den
// HTML-Quelltext einer URL zu bekommen
[/COLOR][COLOR=#0000BB]$lines [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]file[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'[/COLOR][/COLOR]http://api.filesonic.com/link?method=getInfo&ids=3999034095.xml[COLOR=#000000][COLOR=#DD0000]'[/COLOR][COLOR=#007700]);

[/COLOR][COLOR=#FF8000]// Durchgehen des Arrays und Anzeigen des HTML-Quelltexts inkl. Zeilennummern
[/COLOR][COLOR=#007700]foreach ([/COLOR][COLOR=#0000BB]$lines [/COLOR][COLOR=#007700]as [/COLOR][COLOR=#0000BB]$line_num [/COLOR][COLOR=#007700]=> [/COLOR][COLOR=#0000BB]$line[/COLOR][COLOR=#007700]) {
    echo [/COLOR][COLOR=#DD0000]"Zeile #[/COLOR][COLOR=#007700]{[/COLOR][COLOR=#0000BB]$line_num[/COLOR][COLOR=#007700]}[/COLOR][COLOR=#DD0000] : " [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000BB]htmlspecialchars[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$line[/COLOR][COLOR=#007700]) . [/COLOR][COLOR=#DD0000]"<br>\n"[/COLOR][COLOR=#007700];
}[/COLOR][/COLOR]
 
@Wustersoss

Es funktioniert !!

Ausgabe:
Code:
0 : {"FSApi_Link":{"getInfo":{"response":{"links":[{"id":3999034095,"filename":"cookie_monsta_-_Flubberdub.rar","size":3259517,"description":"","is_password_protected":false,"is_premium_only":false,"updated_on":"2011-11-24 20:42:01","status":"AVAILABLE","url":"http:\/\/www.filesonic.com\/file\/3999034095"}]},"status":"success"}}}

wie kann ich die ausgabe nun auf ein paar "variablen" beschränken ?

brauche nur filename id und status . Status den erste also AVAILABLE
 
@mermshaus

Deine methode klappt auch

Code:

PHP:
<?php
$jsonfile = file_get_contents('http://api.filesonic.com/link?method=getInfo&ids=3999034095.xml');$jsonarray = var_dump(json_decode($jsonfile));
echo $jsonarray['filename'];
?>

Ausgabe:
Code:
object(stdClass)#1 (1) { ["FSApi_Link"]=> object(stdClass)#2 (1) { ["getInfo"]=> object(stdClass)#3 (2) { ["response"]=> object(stdClass)#4 (1) { ["links"]=> array(1) { [0]=> object(stdClass)#5 (9) { ["id"]=> float(3999034095) ["filename"]=> string(30) "cookie_monsta_-_Flubberdub.rar" ["size"]=> int(3259517) ["description"]=> string(0) "" ["is_password_protected"]=> bool(false) ["is_premium_only"]=> bool(false) ["updated_on"]=> string(19) "2011-11-24 20:42:01" ["status"]=> string(9) "AVAILABLE" ["url"]=> string(40) "http://www.filesonic.com/file/3999034095" } } } ["status"]=> string(7) "success" } } }

Leider funktioniert der teil nicht ['filename']; wie man sieht wird alles ausgegeben.
Wie kann ich das nun auf 2-3 "variablen" beschränken..

Das ist die source im browser


[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"][/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"][/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"]object(stdClass)#1 (1) {[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["FSApi_Link"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] object(stdClass)#2 (1) {[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["getInfo"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] object(stdClass)#3 (2) {[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["response"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] object(stdClass)#4 (1) {[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["links"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] array(1) {[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] [0]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] object(stdClass)#5 (9) {[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["id"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] float(3999034095)[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["filename"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] string(30) "cookie_monsta_-_Flubberdub.rar"[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["size"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] int(3259517)[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["description"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] string(0) ""[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["is_password_protected"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] bool(false)[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["is_premium_only"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] bool(false)[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["updated_on"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] string(19) "2011-11-24 20:42:01"[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["status"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] string(9) "AVAILABLE"[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["url"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] string(40) "http://www.filesonic.com/file/3999034095"[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] }[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] }[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] }[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] ["status"]=>[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] string(7) "success"[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] }[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"] }[/TD]

[TD="class: webkit-line-number"][/TD]
[TD="class: webkit-line-content"]}[/TD]
 
Du musst dich durch den „Objekt-Baum“ durchhangeln:

PHP:
<?php

$jsonfile = file_get_contents('http://api.filesonic.com/link?method=getInfo&ids=3999034095.xml');
$data = json_decode($jsonfile);
echo $data->FSApi_Link->getInfo->response->links[0]->filename;
 
Soo ein neues Problem !

Code:

PHP:
$link = @file_get_contents("http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=checkfiles&files=3644665873&filenames=Skrillex_-_Do_Da_Oliphant.rar");

//Links splitten bei | 
$link = explode(",", $link); 
foreach ($link as $value) {
    
echo $value;

also ich splitte alles bei "," da dies das einzige trennzeichen ist !


Ausgabe:

Code:
3644665873
Skrillex_-_Do_Da_Oliphant.rar
13203833
674
1
tl2
4C28CFF04C8757F7B662125351C26E37

Ich benötige wieder nur den namen und die größe also die 2te und 3te zeile !
Problem ist das es keine formatierung gibt !

http://api.rapidshare.com/cgi-bin/r...65873&filenames=Skrillex_-_Do_Da_Oliphant.rar

Was nun tun ?
 
Na ja, explode liefert dir die Daten doch als Array. So schwierig ist es nun nicht, da an den zweiten und dritten Eintrag zu kommen…

PHP:
<?php

$data = @file_get_contents("http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=checkfiles&files=3644665873&filenames=Skrillex_-_Do_Da_Oliphant.rar");

$parts = explode(",", $data);

var_dump($parts[1], $parts[2]);
 
Zurück
Oben