PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Unbekannte Zeichen im Array (https://www.php-resource.de/forum/php-developer-forum/86759-unbekannte-zeichen-im-array.html)

normbox 06-09-2007 12:53

Unbekannte Zeichen im Array
 
Das Script liest eine HTML Seite mit file_get_contents aus.

PHP-Code:

$html=file_get_contents('http://'.WEB.$_POST['request_uri']);
$html=nl2br($html);
$html=str_replace("\n\r"," ",$html);
$html=str_replace("\n"," ",$html);
$html=str_replace("\t"," ",$html);
$html=strip_tags($html);
$html=html_entity_decode($html);
$html=repl_zeichen($html);

$output=explode(' ',$html);
asort($output);
foreach(
$output as $wort)
if ((
strlen($wort)>=3) AND (!empty($wort))) {
  echo 
'<input style="width:20px" value="'.strlen($wort).'"><input style="width:400px" value="'.trim($wort).'"><br>';


Jetzt habe ich die Leerzeichen entfernt aber ich erhalte weiterhin leere Felder bzw. nicht sichtbare Zeichen.

Wenn ich die Zeile auslese und mit strlen zähle erhalte ich 6 Zeichen. Ich habe schon im Inputfeld die Daten ausgegeben aber dort kann ich nur ein Leerzeichen finden. Die Ausgabe in einer Textarea ergibt ein breites Leerzeichen.

Wie kann ich herausfinden welches Zeichen das ist?

ThemBones 06-09-2007 12:58

was macht

PHP-Code:

repl_zeichen(); 

?

ghostgambler 06-09-2007 13:01

Die HTML-Datei ist nicht zufällig per DreamWaver oder so entstanden?
Der speichert am Anfang der Datei irgendeinen Zeichenmüll, was sehr lustig ist, weil der Firefox daran verreckt und die Website dann nur im IE vernünftig beguckbar ist...
Vielleicht sind das die Zeichen in die du gelaufen bist~

Gavyn 06-09-2007 13:02

oder um es mal zu verdeutlichen, bei dir steht:

PHP-Code:

$html=str_replace("\n\r","[b]&nbsp;[/b]",$html); 


normbox 06-09-2007 13:03

Zitat:

Original geschrieben von ThemBones
was macht

PHP-Code:

repl_zeichen(); 

?

Sucht Sonderzeichen und verwandelt diese mit str_replace in Leerzeichen.

z.B.:

PHP-Code:

function repl_zeichen($text) {
  
$text str_replace('&'' '$text);
  
$text str_replace('°'' '$text);
  
$text str_replace('^'' '$text);



jahlives 06-09-2007 13:08

PHP-Code:

$html=nl2br($html);
$html=str_replace("\n\r"," ",$html);
$html=str_replace("\n"," ",$html); 

Also dieser Code macht nicht wirklich viel Sinn. Wieviele \n\r als Zeilenumbrüche hast du wohl in deinem Code ? Also ich tippe drauf, dass das Zeichen ein \r ist. Kannst du aber schnell selber rausfinden indem du
PHP-Code:

for($i=0;$i<strlen($wort);$i++){
  echo 
ord($wort[$i]).'<br />';


Gibt dir pro Zeile die ASCII Nummer des Zeichens zurück. Dann kannst du mittels der ASCII Tabelle festellen, um welches Zeichen es sich handelt
Und wieso machst du überhaupt Ersetzungen mit " " ? Danach explodest du am Leerzeichen...
Ausserdem ist nl2br() gefolgt von strip_tags() irgendwie auch für die Katze :rolleyes:

normbox 06-09-2007 13:11

Zitat:

Original geschrieben von Gavyn
PHP-Code:

$html=str_replace("\n\r","[b]&nbsp;<b>oder um es mal zu verdeutlichen, bei dir steht:
</b>"
,$html); 

[/B]
Leider nicht aber ich habe einfach mal

PHP-Code:

$wort=str_replace("&","",$wort); 

und jetzt zeigt er #160; an.

Das ist ja &amp;nbsp; aber nur als &amp;#160; geschrieben.

Danke hat mir weitergeholfen :D

normbox 06-09-2007 13:27

Zitat:

Original geschrieben von jahlives
PHP-Code:

$html=nl2br($html);
$html=str_replace("\n\r"," ",$html);
$html=str_replace("\n"," ",$html); 

Also dieser Code macht nicht wirklich viel Sinn. Wieviele \n\r als Zeilenumbrüche hast du wohl in deinem Code ? Also ich tippe drauf, dass das Zeichen ein \r ist. Kannst du aber schnell selber rausfinden indem du
PHP-Code:

for($i=0;$i<strlen($wort);$i++){
  echo 
ord($wort[$i]).'<br />';


Gibt dir pro Zeile die ASCII Nummer des Zeichens zurück. Dann kannst du mittels der ASCII Tabelle festellen, um welches Zeichen es sich handelt
Und wieso machst du überhaupt Ersetzungen mit " " ? Danach explodest du am Leerzeichen...
Ausserdem ist nl2br() gefolgt von strip_tags() irgendwie auch für die Katze :rolleyes:

Ja das nl2br() war eine Verzweiflungstat :rolleyes:
Wollte sehen welche Zeichen dort enthalten waren.

Das Problem konnte ich ja bereits lösen.

Vielen Dank


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:07 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG