PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
php substr liefert keine Rückgabe
Beitrag
<blockquote data-quote="rilight" data-source="post: 2329038" data-attributes="member: 77589"><p>Hallo liebes Forum!</p><p></p><p>Nachdem ich mir nun über 3 Stunden den Kopf zerbrochen habe und google und php.net leider auch keine Lösung parat hatten, hoffe ich, dass Ihr mir helfen könnt.</p><p></p><p>Innerhalb eines PHP Skriptes ( UTF-8 kodiert ) erstelle ich etwas HTML Quelltext.</p><p>[HTML]<!Doctype HTML><html><title>Eine Testseite</title><meta name="author" content="Paul Mueller"><meta name="description" content="Ein HTML5 Dokument"><meta name="keywords" content="HTML5, PHP, TEST"><meta charset="utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8"><h1>Überschrift</h1><p>Der erste Abschnitt.</p><p>Der zweite Abschnitt.</p><p>Der dritte Abschnitt.</p></html>[/HTML]</p><p></p><p>Innerhalb einer Funktion wollte ich diesen Quelltext, oder allgemein gesprochen, den String bearbeiten. Dafür benutze ich die substr Funktion. Und hier ist auch schon das Problem : Die Rückgabe wird nicht angezeigt.</p><p></p><p>Die Funktion ...</p><p>[PHP]function test( $input )</p><p>{</p><p> echo( 'function = test()'.'<br>' );</p><p> echo( '['.substr( $input , 0, 1 ).']'.'<br>' );</p><p> echo( '['.substr( $input , 0, 5 ).']'.'<br>' );</p><p> echo( '['.mb_substr( utf8_decode( $input ), 0, 5, 'UTF-8' ).']'.'<br>' );</p><p>}[/PHP]</p><p></p><p>... liefert als Ausgabe:</p><p>[CODE]function = test()</p><p>[<]</p><p>[[[[/CODE]</p><p></p><p>Ich kann mir nicht erklären, wieso von dem ausreichend langen String nur bei einer Substringlänge von 1 der korrekte Wert zurückgeliefert wird. Auch sehr merkwürdig ist, dass bei längeren Abschnitten die schließende eckige Klammer verschwindet.</p><p></p><p>Ein var_dump auf die Rückgabe liefert.</p><p>[CODE]string(5) "[/CODE]</p><p></p><p>Testet man mittels ord( .. ) die 5 Stellen 0-4, die var_dump angibt, bekommt man die korrekten ASCII-Werte für den Quelltext.</p><p></p><p>Meine Vermutung liegt bei der Zeichenkodierung, jedoch hab ich auf stackoverflow und php.net nichts vergleichbares gefunden.</p><p></p><p>Ich hoffe auf eure Ideen.</p><p></p><p></p><p>Vielen Dank im Voraus.</p><p>rilight</p></blockquote><p></p>
[QUOTE="rilight, post: 2329038, member: 77589"] Hallo liebes Forum! Nachdem ich mir nun über 3 Stunden den Kopf zerbrochen habe und google und php.net leider auch keine Lösung parat hatten, hoffe ich, dass Ihr mir helfen könnt. Innerhalb eines PHP Skriptes ( UTF-8 kodiert ) erstelle ich etwas HTML Quelltext. [HTML]<!Doctype HTML><html><title>Eine Testseite</title><meta name="author" content="Paul Mueller"><meta name="description" content="Ein HTML5 Dokument"><meta name="keywords" content="HTML5, PHP, TEST"><meta charset="utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8"><h1>Überschrift</h1><p>Der erste Abschnitt.</p><p>Der zweite Abschnitt.</p><p>Der dritte Abschnitt.</p></html>[/HTML] Innerhalb einer Funktion wollte ich diesen Quelltext, oder allgemein gesprochen, den String bearbeiten. Dafür benutze ich die substr Funktion. Und hier ist auch schon das Problem : Die Rückgabe wird nicht angezeigt. Die Funktion ... [PHP]function test( $input ) { echo( 'function = test()'.'<br>' ); echo( '['.substr( $input , 0, 1 ).']'.'<br>' ); echo( '['.substr( $input , 0, 5 ).']'.'<br>' ); echo( '['.mb_substr( utf8_decode( $input ), 0, 5, 'UTF-8' ).']'.'<br>' ); }[/PHP] ... liefert als Ausgabe: [CODE]function = test() [<] [[[[/CODE] Ich kann mir nicht erklären, wieso von dem ausreichend langen String nur bei einer Substringlänge von 1 der korrekte Wert zurückgeliefert wird. Auch sehr merkwürdig ist, dass bei längeren Abschnitten die schließende eckige Klammer verschwindet. Ein var_dump auf die Rückgabe liefert. [CODE]string(5) "[/CODE] Testet man mittels ord( .. ) die 5 Stellen 0-4, die var_dump angibt, bekommt man die korrekten ASCII-Werte für den Quelltext. Meine Vermutung liegt bei der Zeichenkodierung, jedoch hab ich auf stackoverflow und php.net nichts vergleichbares gefunden. Ich hoffe auf eure Ideen. Vielen Dank im Voraus. rilight [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ★ = 12, ◇ = 4 und die Hälfte von ★ zu ◇ addiert wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
php substr liefert keine Rückgabe
Oben