Download
Entwicklung
Konto
Download
Entwicklung
Anmelden
Vergessen Konto/Passwort
Konto erstellen
Sprache
Hilfe
Sprache
Hilfe
×
Anmelden
Anmeldename
Passwort
×
Vergessen Konto/Passwort
Übersetzungsstatus von Deutsch
Kategorie:
Software
Personen
PersonalForge
Magazine
Wiki
Suche
OSDN
>
Finden Software
>
PHP WEBアプリフレームワーク
>
Ticket-Liste / Suche
>
Ticket #9507
PHP WEBアプリフレームワーク
Beschreibung
Projekt Zusammenfassung
Entwickler-Dashboard
Web-Seite
Entwickler
Bildergalerie
RSS Feed-Liste
Aktivität
Statistiken
Historie
Downloads
Aller Releases-Liste
Statistiken
Quellcode
Quellcode-Repositorys-Liste
CVS
Repository ansehen
Ticket
Ticket-Liste
Liste der Meilensteine
Typenliste
Komponentenliste
Liste der zuletzt benutzten Tickets/RSS
Neue Ticket abschicken
Dokumente
Kommunikation
Foren
Forum-Liste
Hilfe (1)
Offene Diskussion (1)
Mailinglisten
Alle Mailinglisten
Neuigkeiten
Ticket #9507
Ticket-Liste
Neue Ticket abschicken
RSS
bogoYAML: 文字列のエスケープシーケンス解釈の不具合に対処するパッチ
Eröffnet am:
2006-12-02 05:49
Letztes Update:
2006-12-02 05:49
beobachte
ON
OFF
Auswertung:
(Anonym)
Verantwortlicher:
(Keine)
Typ:
Patches
Status:
Offen
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
1
Details
Antworten
1. 概要
文字列のエスケープシーケンスの解釈が適切に行われず、
データの読み出し時に文字列を破壊する不具合が存在しま
す。
2. 原因
str_replaceの挙動が原因で、これは複数の対象を一回の探
査で処理せず、別々に順番に処理します。
PHP Manualより
> search あるいは replace が配列の場合は、配列の最初の
要素から順に処理されます。
> cite: http://jp.php.net/manual/ja/function.str-
replace.php
したがって、"\\n"と言うシーケンスがあった場合、現在の
コードでは先に\nが置換されてしまいます。
また、これは置換の順序を変更することでは解消できませ
ん。先に\\を置換するようにした場合、
\\の置換処理で"\n"となった後、\nの置換処理で単なる改行
へと変化してしまいます。
3. 対策
preg_replace_callback等を用いて、全てのシーケンス展開
を一周の置換処理で完了するように修正します。
4. 再現データ
---
- "\\n"
[EOF]
5. パッチ
添付
Ticket-Verlauf (1/1 Historien)
2006-12-02 05:49
Aktualisiert von: None
File
1647: EscapeSequence.patch
is attached
Dateianhangliste (
1
)
Dateianhangliste
EscapeSequence.patch
(1KB)
patch file
Bearbeiten
Kommentar hinzufügen
You are not logged in.
I you are not logged in, your comment will be treated as an anonymous post. »
Anmelden
Kommentar hinzufügen
Vorschau
Abschicken
文字列のエスケープシーケンスの解釈が適切に行われず、
データの読み出し時に文字列を破壊する不具合が存在しま
す。
2. 原因
str_replaceの挙動が原因で、これは複数の対象を一回の探
査で処理せず、別々に順番に処理します。
PHP Manualより
> search あるいは replace が配列の場合は、配列の最初の
要素から順に処理されます。
> cite: http://jp.php.net/manual/ja/function.str-
replace.php
したがって、"\\n"と言うシーケンスがあった場合、現在の
コードでは先に\nが置換されてしまいます。
また、これは置換の順序を変更することでは解消できませ
ん。先に\\を置換するようにした場合、
\\の置換処理で"\n"となった後、\nの置換処理で単なる改行
へと変化してしまいます。
3. 対策
preg_replace_callback等を用いて、全てのシーケンス展開
を一周の置換処理で完了するように修正します。
4. 再現データ
---
- "\\n"
[EOF]
5. パッチ
添付