Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Bestimmte Stelle im Quelltext auslesen und in Variable speichern

Frage Entwicklung PHP

Mitglied: Lampux

Lampux (Level 1) - Jetzt verbinden

15.11.2010, aktualisiert 09:57 Uhr, 7665 Aufrufe, 7 Kommentare

Guten Tag zusammen,

ich möchte gerne eine bestimmte Stelle auf dem Quelltext einer Website herrauslesen und anschließen in einer Variable speichern. Hier das Beispiel:

Ich Quelltext kommt nur einmal diese Stelle vor:

class="file_description_box"><a href="VARIABLER LINK"

Ich möchte nun den Quelltext nach "class="file_description_box"><a href=" durchsuchen und anschließen den VARIABLEN LINK in einer Variable speichern. Es geht mir eigentlich nur um den VARIABLEN LINK, den muss ich in einer Variablen speichern. Ich habe schon einiges probiert, öfters von vorne wieder angefangen, jedoch kein Erfolg gehabt. Die regulären Ausdrücke ist ein komplexes Thema. Hier mein Beispiel (Ich hab die RegEx wieder entfernt, da es nur zur Fehler kam):

01.
  
02.
<?php 
03.
$quelltext = file_get_contents('http://www.beispiel.de'); 
04.
$suche = 'class="file_description_box"><a href="'; 
05.
preg_match('/' . preg_quote($suche) . '/', $quelltext, $treffer); 
06.
echo $treffer[0]; 
07.
?> 
08.
 


Wäre nett, wenn ihr den Code anpassen oder eventuell neu scripten könntet.

Mit freundlichen Grüßen

Lampux
Mitglied: maretz
15.11.2010 um 09:57 Uhr
Moin,

darf ich dir auch noch Kaffee kochen? Deine Wohnung könnte ich nebenbei auch noch aufräumen wenn du magst...

Fangen wir mal einfach an: Was ist denn der Fehler? Und wäre es nicht sinnvoller zumindest

if (preg_match...) echo "Treffer";

zu schreiben?
Bitte warten ..
Mitglied: Lampux
15.11.2010 um 10:02 Uhr
Es gibt im obigen Script keinen Fehler, da ich die RegEx wieder entfernt habe, an der Stelle von
"class="file_description_box"><a href="'(.+) REGEX AUSDRUCK" sollte normal ein RegEx Ausdruck stehen, nur kam es bei mir hier immer wieder zu verschiedenen Fehlermeldungen. Wahrscheinlich kenne ich mich dafür in RegEx zu wenig aus. Jedoch lohnt es sich nicht stundenlang nun dort einzulesen, da ich nur dieses einzige Script mit RegEx benötige.

Falls du das Script nicht verstehst, schreib nochmal, ich erklärs dir gerne nocheinmal.

Im obigen Script erhalte ich logischerweise als Ausgabe:

class="file_description_box">

Natürlich ist das nicht was ich möchte, ich möchte den VARIABLEN LINK ausgegeben haben. Jedoch benötige ich dazu erstmal die passenden regulären Ausdrücke dafür. Da der Link nicht jedes mal gleich ist.
Bitte warten ..
Mitglied: maretz
15.11.2010 um 10:21 Uhr
Naja - im schlimmsten Fall kannst du ja ganz stupide vorgehen:

if (preg_match("class=....",$deineZeile) {
$text = preg_split("a href=\"",$deineZeile); Jetzt steht schonmal alles hinter a href=" in $text[1]
$text2 = preg_split ("\"",$text[1]);
Jetzt steht in $text2[0] dein Link
}
echo $text2[0]; // Sollte den Link ausgeben


Wenn du jetzt also zeilenweise durch deine Quelltext-Datei marschierst dann sollte das so in etwa hinhauen...
Allerdings finde ich die Aussage "lohnt sich nicht" ehrlich gesagt zimlich traurig. Denn damit sagst du das es sich
für dich nicht lohnt das du deine Zeit damit verschwendest -> das sollen lieber andere machen. Und da es sich
für mich dann nicht lohnt MEINE Zeit zu verschwenden (mein Script läuft!) werde ich das jetzt absichtlich nicht
genauer schreiben und das auch sicher nicht testen ob das so jetzt hinhaut...
Bitte warten ..
Mitglied: Lampux
15.11.2010 um 10:56 Uhr
Leider funktioniert dein Script noch nicht ganz: Ich erhalte folgende Fehlermeldung:

Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in C:\xampp\htdocs\search.php on line 3

Hier das Script:

01.
 <?php 
02.
$quelltext = file_get_contents('http://www.beispiel.de'); 
03.
if (preg_match('class="file_description_box"><a href=',$quelltext)) { 
04.
$text = preg_split("a href=\"",$quelltext); //Jetzt steht schonmal alles hinter a href=" in $text[1] 
05.
$text2 = preg_split ("\"",$text[1]); //Jetzt steht in $text2[0] dein Link 
06.
07.
echo $text2[0]; // Sollte den Link ausgeben 
08.
?>


Die Aussage "lohnt sich nicht" bezieht sich auf den aktuellen Zeitpunk. Beispiel für dich: Du hast ein komplexes Thema, benötigst aber nur einen kleinen Ausschnitt davon in kurzer Zeit. Schaust du dir nun das Thema 10 Stunden an, wenn du dafür eigentlich keine Zeit hast? Die Effektivität ist zu gering, wenn dieser Ausschnitt nur einmal gebraucht wird. Deshalb gibt es Foren, wo Menschen mit viel Erfahrung auf einem bestimmten Gebiet, anderen helfen können. Ich habe mich bemüht, das Problem selbst zu lösen, jedoch ist es mir nicht gelungen. Deine Antwort ist freiwillig, es zwingt dir niemand mir zur helfen. Also falls du nicht helfen möchtest, dann lass es und schaue dir ein anderes Thema an. Natürlich freue ich mich wenn mir jemand hilft, deshalb bin ich ja hier angemeldet

mfg Lampux
Bitte warten ..
Mitglied: nxclass
15.11.2010 um 11:30 Uhr
Warum benutzt Du nicht einen XML Parser um an die Daten zu kommen. http://www.php.net/manual/de/book.xmlreader.php

naja - evtl hilft auch das:
01.
preg_match('/' . preg_quote($suche) . '([^"]*)\"/', $quelltext, $treffer);
Bitte warten ..
Mitglied: Lampux
15.11.2010 um 13:19 Uhr
Leider funktioniert diese Lösung auch nicht

Hier das Script:

01.
<?php 
02.
$quelltext = file_get_contents('http://www.beispiel.de'); 
03.
$suche = 'class="file_description_box"><a href='
04.
preg_match('/' . preg_quote($suche) . '([^"]*)\"/', $quelltext, $treffer); 
05.
echo $treffer[0]; 
06.
?>
Folgende Ausgabe erhalte ich:

class="file_description_box">


Das Script von Maretz habe ich auch ein wenig angepasst, jedoch scheitet es mit dieser Meldung:

Warning: preg_split() [function.preg-split]: Delimiter must not be alphanumeric or backslash in C:\xampp\htdocs\search.php on line 5

Warning: preg_split() [function.preg-split]: Delimiter must not be alphanumeric or backslash in C:\xampp\htdocs\search.php on line 6

Hier das Script:

01.
<?php 
02.
$quelltext = file_get_contents('http://www.beispiel.de'); 
03.
$suche = 'class="file_description_box"><a href='
04.
if (preg_match("/" . preg_quote($suche) . "/",$quelltext)) { 
05.
$text = preg_split('a href=\"',$quelltext); // Jetzt steht schonmal alles hinter a href=" in $text[1] 
06.
$text2 = preg_split ('\"',$text[1]); // Jetzt steht in $text2[0] dein Link 
07.
08.
echo $text2[0]; // Sollte den Link ausgeben 
09.
?>
Ich hoffe das mir jemand helfen kann
Bitte warten ..
Mitglied: Lampux
15.11.2010 um 15:05 Uhr
Okay, Danke für eure Mühe, ich habe nun die Lösung: Falls es jemand intressiert, hier die Lösung:

01.
<?php 
02.
 
03.
$quelltext = file_get_contents("http://www.beispiel.de"); 
04.
preg_match("/class=\"file_description_box\"><a href=\".+\" target/",$quelltext,$img_tag);   
05.
$bild = htmlentities($img_tag[0]); 
06.
 
07.
preg_match("/http.+\"/",$img_tag[0],$img); 
08.
$bild3 = str_replace("\"", "", $img[0]); 
09.
$bild2 = htmlentities($bild3); 
10.
 
11.
echo $bild2
12.
 
13.
?>
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst Formelergebnis in Variable speichern (1)

Frage von Juweee zum Thema VB for Applications ...

Visual Studio
gelöst VB bestimmte Stelle im Bild highlighten wenn MouseOver Textbox? (9)

Frage von PixL86 zum Thema Visual Studio ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Festplatten, SSD, Raid
PC stellt nach dem Bios ab (18)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

iOS
16 iPads zentrall verwalten (18)

Frage von simonlohr zum Thema iOS ...

Viren und Trojaner
Ransomware .nm4 (15)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...