php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-04-2008, 03:26
Snaq
 Newbie
Links : Onlinestatus : Snaq ist offline
Registriert seit: Mar 2006
Beiträge: 62
Snaq ist zur Zeit noch ein unbeschriebenes Blatt
Standard preg_match_all

hallo,

ich habe ein Problem.
Ich möchte auf einer Seite den Namen auslesen, der etwa so in der Form ist
<span class='klein_txt'> Name </span>

also habe ich das mal so probiert, aber das liefert mir keine Antwort


PHP-Code:
preg_match_all("%<span class='klein_txt'>(.+?)<\/span>%is"$namecode$name);
echo 
$name[0]; 
PS: vor dem /span im pattern ist ein escapestring der allerdings im code nicht angezeigt wird.

in $namecode ist der ganze text in dem gesucht wird und in $name soll das gespeichert werden.


Könnt ihr mir da weiter helfen?

Mfg Snaq
Mit Zitat antworten
  #2 (permalink)  
Alt 17-04-2008, 03:53
kuddeldaddeldu
 Registrierter Benutzer
Links : Onlinestatus : kuddeldaddeldu ist offline
Registriert seit: Sep 2006
Beiträge: 437
kuddeldaddeldu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

mal ein print_r($name) gemacht?

LG
Mit Zitat antworten
  #3 (permalink)  
Alt 17-04-2008, 09:08
$_Baker
 Member
Links : Onlinestatus : $_Baker ist offline
Registriert seit: Feb 2008
Beiträge: 220
$_Baker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

' für den Regex anstatt " benutzen!
" gehört um den Attributwert des span-tags (Wennn dort tatsächlich ein ' sein sollte, dann lieber escapen)

PS: Normale Code-Tags benutzen, dann sieht man auch die Backslashes
Mit Zitat antworten
  #4 (permalink)  
Alt 17-04-2008, 09:10
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Warum zum Geier maskierst du den Slash?
Mit Zitat antworten
  #5 (permalink)  
Alt 17-04-2008, 10:06
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Code:
(.+?)
Das Fragezeichen kannst du dir eigentlich sparen!
Mit Zitat antworten
  #6 (permalink)  
Alt 17-04-2008, 11:05
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich nehm genau deinen Ausdruck (ob mit oder ohne escape! - übrigens wenn du den Backslashes verdoppelst, sieht man ihn hier auch) und der funktioniert perfekt. Die Einwände von unset und PHP-Desaster sind zwar richtig, haben aber eigentlich nichts mit dem (scheinbar nicht existenten) Problem zu tun.

@$_Baker
Solche Behauptungen, die nichts mit dem Problem zu tun haben, verwirren nur.
__________________
Gruss
H2O
Mit Zitat antworten
  #7 (permalink)  
Alt 17-04-2008, 17:11
Snaq
 Newbie
Links : Onlinestatus : Snaq ist offline
Registriert seit: Mar 2006
Beiträge: 62
Snaq ist zur Zeit noch ein unbeschriebenes Blatt
Standard

danke für die hilfe,
ich habe das pattern jetzt angepasst

Code:
preg_match_all('%<span class=\\'klein_txt\\'>(.+)</span>%is', $namecode, $name);
aber einscheinend lese ich die seite falsch aus.
könnt ihr mir da weiter helfen?

zur zeit mache ich das so

Code:
$namestatus = fopen("http://fun.ciasrv101.de/scripts/userdetails.php?userid=67", "r")
 or die($php_errormsg);
  while(! feof($namestatus))
    {
    $namecode .= fread($namestatus, 15000000);
    }
  fclose($namestatus);
der quellcode welcher in $namestatus gespeichert wird ist aber nicht derselbe wie wenn ich die seite normal über den browser aufrufe. könnt ihr mir da helfen?

Geändert von Snaq (17-04-2008 um 17:21 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 17-04-2008, 22:20
$_Baker
 Member
Links : Onlinestatus : $_Baker ist offline
Registriert seit: Feb 2008
Beiträge: 220
$_Baker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

file_get_contents().

@H2O: Begründung, warum das nichts mit dem Problem zu tun hat?
Mit Zitat antworten
  #9 (permalink)  
Alt 18-04-2008, 09:25
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von $_Baker
Begründung, warum das nichts mit dem Problem zu tun hat?
Begründung, warum Regex in Hochkommas und Attributwerte in Anführungszeichen stehen sollen?
__________________
Gruss
H2O
Mit Zitat antworten
  #10 (permalink)  
Alt 18-04-2008, 18:14
Manko10
 Newbie
Links : Onlinestatus : Manko10 ist offline
Registriert seit: Mar 2008
Beiträge: 115
Manko10 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ganz einfach: Attribut-Werte in Anführungszeichen => HTML-Standard
RegEx in Hochkommata => Dann hast du kein Problem mit Variableninterpolation. Als Beispiel:
PHP-Code:
preg_match("#^abc(.+)def$#is""$1"$text); 
gibt nur Probleme. Du müsstest ziemlich viel herumescapen (und zwar sowohl im RegEx als auch im Replace - also für beides Hochkommata benutzen).

Geändert von Manko10 (18-04-2008 um 18:18 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 21-04-2008, 13:00
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Manko10
Attribut-Werte in Anführungszeichen => HTML-Standard
Wo steht das? Es wird zwar immer wieder behauptet, ist aber ein Gerücht. Ich habe jetzt keine Lust, die ganze W3C-Definition zu durchsuchen, als Ersatz einfach soviel
Zitat:
Original geschrieben von Selfhtml
Obwohl es vom HTML-Standard her zulässig wäre, dass bestimmte Attributwerte auch ohne Anführungszeichen geschrieben werden können, sollten Sie diese Möglichkeit nicht nutzen. Es verringert die Wahrscheinlichkeit von Fehlern, wenn Sie grundsätzlich alle Werte, die Sie Attributen zuweisen, in einfache ' oder doppelte " Anführungszeichen setzen. Sie können diese zwei Arten innerhalb einer Datei beliebig mischen, lediglich für ein einzelnes Attribut müssen an Anfang und Ende dieselben Zeichen benutzt werden. Welches Zeichen Sie wählen, ist im Prinzip egal.
__________________
Gruss
H2O
Mit Zitat antworten
  #12 (permalink)  
Alt 21-04-2008, 13:53
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mal ne Anmerkung wegen dem ? das so schnell als unnötig deklariert wurde
Code:
preg_match('/<span>(.+)<\/span>/is');
wird doch im geklammerten Treffer </span> ebenfalls matchen. Dies da der Ausdruck als ganzes Greedy ist. Imho wäre
Code:
preg_match('/<span>(.+?)<\/span>/is');
//oder
preg_match('/<span>(.+)<\/span>/iUs');
korrekt...
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:46 Uhr.