php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.01.2006, 14:06  
Gast
 
Beiträge: n/a
Standard Problem beim Vergleich ausgelesenen Daten(XML) mit strpos()

So hatte ich mir den Code vorgestellt:

Code:
$naviXML = simplexml_load_file('test.xml');
Code:
$actContent = $naviXML->main[1]->sub[0][ccode];
Code:
$res = strpos($actContent,$naviXML->main[1][ccode]);
Code:
echo $res, '
';
Code:
echo $actContent, '
';
Code:
echo $naviXML->main[1][ccode], '
';
Allerdings fehlt bei der Ausgabe


ABteam
AB

die Null die meiner Ansicht nach erscheinen sollte.
Wenn ich nun anstelle von
Code:
$res = strpos($actContent,$naviXML->main[1][ccode]);
Code:
$res = strpos($actContent,'AB');
eingebe, kommt auch das von mir erwartete Ergebnis

0
ABteam
AB

, was mich so alerdings nicht so recht weiterbringt, da ich eine dynamische Lösung benötige.

Es wäre klasse, wenn mir jemand bei diesem Problem helfen könnte...
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.01.2006, 14:14  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP-Code:
<?php
// alle Fehler anzeigen:
error_reporting(E_ALL);
// eine Variable baut Mist:
var_dump($naviXML->main[1]->sub[0]['ccode']);
// beachte die Anführungszeichen um ccode
?>
Zergling-new ist offline  
Alt 24.01.2006, 16:32  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Zergling
PHP-Code:
<?php
// alle Fehler anzeigen:
error_reporting(E_ALL);
// eine Variable baut Mist:
var_dump($naviXML->main[1]->sub[0]['ccode']);
// beachte die Anführungszeichen um ccode
?>
Daraufhin spuckt er mir dieses aus:

object(SimpleXMLElement)#3 (1) { [0]=> string(3) "PRO" }

Wenn ich ehrlich bin macht mich das jetzt auch nicht wirklich schlauer ...

HILFÄÄÄÄÄÄÄ!
 
Alt 25.01.2006, 08:57  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

PHP-Code:
<?php
$text 
"abcdef";
echo 
var_dump(strpos($text"ab")) . "
"
;
echo 
var_dump(strpos($text"xy")) . "
"
;
?>
false wird als Leerstring angezeigt ... aus welchen Grund auch immer Matcht dein Code nicht aber ich kann ihn leider nicht ganz nachverfolgen weil mir dazu deine XML fehlt.
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
Alt 25.01.2006, 09:06  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von HStev
PHP-Code:
<?php
$text 
"abcdef";
echo 
var_dump(strpos($text"ab"), true) . "
"
;
echo 
var_dump(strpos($text"xy"), true) . "
"
;
?>
false wird als Leerstring angezeigt ... aus welchen Grund auch immer Matcht dein Code aber ich kann ihn leider nicht ganz nachverfolgen weil mir dazu deine XML fehlt.
Datan soll es nicht liegen, der sieht folgendermaßen aus!

<?xml version="1.0" encoding="UTF-8"?>
<navi>
<main ncode="start" submenue="false">
<topic>
<![CDATA[Startseite]]>
</topic>
</main>
<main ncode="AB" submenue="true">
<topic>
<![CDATA[&Uuml;ber]]>
</topic>
<sub ncode="ABteam">
<topic>
<![CDATA[Das Team]]>
</topic>
</sub>
</main>
</navi>
 
Alt 25.01.2006, 09:20  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

mach mal

PHP-Code:
<?php
$naviXML 
simplexml_load_file('test.xml');
echo 
"<pre>" var_export($naviXMLtrue) . "</pre>";
?>
da sollte dir schon was auffallen

[edit] zumal ccode bei dir in der XML gar nicht vorkommt sondern nur ncode
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
Alt 25.01.2006, 09:27  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von HStev
mach mal

PHP-Code:
<?php
$naviXML 
simplexml_load_file('test.xml');
echo 
"<pre>" var_export($naviXMLtrue) . "</pre>";
?>
da sollte dir schon was auffallen
Und was?

Ich hab grade irgendwie das Gefühl mit Regionalligafähigkeiten in der Championsliga zu spielen! :-/
 
Alt 25.01.2006, 09:27  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

und deine Lösung bekommst durch n Cast

PHP-Code:
<?php
$res 
strpos($actContent,strval($naviXML->main[1]['ncode']));
//oder
$res strpos($actContent,(string)$naviXML->main[1]['ncode']);
?>
Zitat:
Zitat von Phoenix75
Und was?

Ich hab grade irgendwie das Gefühl mit Regionalligafähigkeiten in der Championsliga zu spielen! :-/
Mach das gleiche mal mit ner XML ohne CDATA
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
Alt 25.01.2006, 10:01  
Gast
 
Beiträge: n/a
Standard

Erstmal danke für den Tip mit dem Cast!!!!!

Und was die CData Geschichte angeht.

Jetzt ist auch mir aufgefallen, dass er mit Cdata die Inhalte von Cdata garnicht mit ausgibt ... mühsam ernährt sich das Eichhörnchen!

Aber woran liegt das?
Und sollte man deshlab lieber auf CData verzichten??
 
Alt 25.01.2006, 10:16  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Richtig, encode die Daten lieber

http://www.php.net/manual/de/function.htmlentities.php
http://www.php.net/manual/de/functio...ity-decode.php

[edit] obwohl mir fällt grad auf utf8_decode hilft auch aber auch nur weil deine XML als UTF-8 encoded ist

PHP-Code:
<?php
$naviXML 
simplexml_load_file('test.xml');
echo 
"<pre>" utf8_decode(var_export($naviXMLtrue)) . "</pre>";
?>
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit strpos() Gomilli PHP Tipps 2008 12 22.04.2008 10:12
PHP / MySQL | Counter IP strpos Problem ... EoD PHP Tipps 2006 2 29.03.2006 14:27
Problem beim Vergleich ausgelesenen Daten(XML) mit strpos() PHP-Fortgeschrittene 2 25.01.2006 09:11
Problem mit Zahlen innerhalb von strpos() PHP Tipps 2005-2 6 25.07.2005 06:40
Problem mit Vergleich JeeZ PHP Tipps 2004 6 28.09.2004 17:27

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php strpos doppelte anführungszeichen, cdata ausgeben php

Alle Zeitangaben in WEZ +1. Es ist jetzt 22:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.