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 31-03-2013, 14:13
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard String mit exaktem Begriff ausschließen

Hallo, ich möchte aus einen String ausschließen, der AUSSCHLIESSLICH den aus dem Begriff "Region" besteht. Sollte der String aber "Region" als einen Begriff von mehreren enthalten (z. B."....in der Region"), dann soll der String nicht ausgeschlossen werden. Dazu habe ich bisher nix gefunden. Ich hatte es mit strstr versucht, dann werden aber alle strings ausgeschlossen, in denen "Region" vorkommt.

Gruß und Dank
newbie1955
Mit Zitat antworten
  #2 (permalink)  
Alt 31-03-2013, 14:50
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard 2. Versuch

ich habe versucht, das Problem über die Stringlänge zu lösen. Merkwürdigerweise passsiert folgendes. Ich lese auf einer Seite die h2-tags ein

PHP-Code:
$data file_get_contents('http://www.seite.de');  
$doc = new DOMDocument(); 
$doc->loadHTML($data); 
$result $doc->getElementsByTagName("h2"); 
foreach (
$result as $node
{
$laenge strlen ($node->nodeValue); 
Auf der Seite steht folgendes:

HTML-Code:
<h2><a href="/region">Region</a></h2>
Wenn ich jetzt mit
PHP-Code:
echo $laenge;
echo 
$node->nodeValue
das Ergebnis ausgebe kommt die Länge 19 und der NodeValue "Region".

Weiß jemand einen Rat?

Gruß
newbie1955
Mit Zitat antworten
  #3 (permalink)  
Alt 31-03-2013, 15:57
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von newbie1955 Beitrag anzeigen
ich habe versucht, das Problem über die Stringlänge zu lösen.
Welches Problem eigentlich? Wenn du wirklich einen exakten Stringvergleich willst – dann tut’s doch ein simples
PHP-Code:
'Foo' === 'Foo' 
absolut ausreichend ...?
Zitat:
[...] kommt die Länge 19 und der NodeValue "Region".
Hast du überprüft, ob da nicht vielleicht noch Whitespace im Value mit drin steckt?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #4 (permalink)  
Alt 31-03-2013, 19:46
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Whitespaces

Danke für die Antwort. Ja, manchmal denkt mal vielleicht zu kompliziert, aber dennoch, es funktioniert auch mit direktem Vergleich nicht, ich habe ja oben abgedruckt, das der $node->nodeValue zwischen > und < nur aus dem Wort "Region" besteht (So steht es jedenfalls im Quellcode) und wenn ich echo $node->nodeValue ausgebe, kommt ja auch nur das eine Wort, (würde er denn, wenn es whitespaces gäbe, die automatisch bei der echo - Ausgabe trimmen?Nee, oder) Es muss aber noch mehr da sein, (nicht nur wegen der Längenausgabe) denn bei der Abfrage
PHP-Code:
if ($node->nodeValue !== "Region"
kommt "Region" trotzdem....Wie kann ich denn herausfinden, was da noch drinsteckt, mit var_dump doch wohl nicht....denn das hatte ich schon versucht.

???
Gruß
newbie1955
Mit Zitat antworten
  #5 (permalink)  
Alt 31-03-2013, 19:52
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Gebe den Wert mal mit urlencode() behandelt aus.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #6 (permalink)  
Alt 31-03-2013, 21:23
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard urlencode

ausgegeben wird mit urlencode:

PHP-Code:
%0D%0A%09%09%09%09%09%09%09%09%09%09%09Region 
Aber bei echo ohne urlencode bildet er die Zeichen ja nicht ab. "Trimmt" er da automatisch?

Selber trimmen nützt jedenfalls nix, da kommt dasselbe heraus (sind ja auch keine Leerzeichen). Ich könnte höchstens die Zahl der Wörter zählen und wenn es nur ein Wort ist, dann soll er es ausschließen. Oder was könnte ich noch machen? Hab ich so noch nicht erlebt.

Gruß und Dank
newbie1955

Geändert von newbie1955 (31-03-2013 um 21:28 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 01-04-2013, 05:51
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von newbie1955 Beitrag anzeigen
ausgegeben wird mit urlencode:
PHP-Code:
%0D%0A%09%09%09%09%09%09%09%09%09%09%09Region 
Wie ich vermutet habe, Whitespace also.

Zitat:
Aber bei echo ohne urlencode bildet er die Zeichen ja nicht ab.
Multiple Whitespace-Zeichen jeglicher Art werden bei der Darstellung als HTML zu einem einzigen Leerzeichen.

Zitat:
Selber trimmen nützt jedenfalls nix, da kommt dasselbe heraus (sind ja auch keine Leerzeichen).
Doch, nützt – trim entfernt per default die Whitespace-Zeichen, die in deinem String enthalten sind.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #8 (permalink)  
Alt 01-04-2013, 12:50
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard trimmen

..aber ich habe es probiert, habe $node->nodeValue mit urlencode ausgegeben, dann getrimmt, dann nochmal ausgegeben und es kam beide Male dasselbe Ergebnis...
Habe es jetzt mit dem Wörterzählen gemacht und alle $node->nodeValues ausgeschlossen, die nur aus einem Wort bestehen, ist aber nur eine Notlösung, denn theoretisch könnte ein anderer $node->nodeValue auch nur EIN Wort enthalten und durchaus erwünscht sein.


Mit Zitat antworten
  #9 (permalink)  
Alt 01-04-2013, 13:59
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Und $node->nodeValue hattest Du auch schon ohne urlencode getrimmt oder nur gedacht, dass es nichts bringt? Getrimmt wird wohl String vor Weiterverarbeitung und nicht für Ausgabe im Browser, wo es dann auf ein Leerzeichen zusammenschrumpft.

Habe es mal kurz getestet.

In /test.html:

HTML-Code:
<h2><a href="www.example.net/region.html">             Region</a></h2>
In datei.php:

PHP-Code:
<?php

$data 
file_get_contents("http://localhost/test.html");  
$doc = new DOMDocument(); 
$doc->loadHTML($data); 
$result $doc->getElementsByTagName("h2"); 

foreach (
$result as $node) {

    
$laenge strlen($node->nodeValue); 
    echo 
$laenge;    // Ausgabe: 19

    
$laenge strlen(trim($node->nodeValue)); 
    echo 
$laenge;    // Ausgabe: 6
}
?>
%0D%0A am Anfang lässt darauf schließen, dass in der HTML auch noch ein Zeilenumbruch enthalten ist. /test.html geändert, um dieses Ergebnis zu erhalten:

HTML-Code:
<h2><a href="www.example.net/region.html">             
           Region</a></h2>
Mit strlen($node->nodeValue) Ergebnis: 32
Mit strlen(trim($node->nodeValue)) Ergebnis: 6

Geändert von Melewo (01-04-2013 um 14:59 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 02-04-2013, 01:06
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Super

Keine Ahnung, warum bei mir beide Male dasselbe herauskam, jetzt klappt es, danke!
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ein Begriff in Spalte finden, welche einen String enthält Kangarooo SQL / Datenbanken 5 10-12-2010 12:15
Verzeichnisse ausschließen... mit RewriteCond bweichel Fragen zu Installation & Konfiguration (LAMP, WAMP & Co.) 5 01-03-2007 17:58
Tags mit einer Endung /> ausschließen hemfrie PHP Developer Forum 2 28-08-2004 20:17
[regex] String aus Teilpattern ausschließen M@ster PHP Developer Forum 3 24-07-2004 14:35
Win XP - Suche Wort, Begriff innerhalb einer Datei nur bei Files mit bekannter Ext? hand Windows (Client/Server) 7 08-01-2003 22:56

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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:43 Uhr.