Descargar
Desarrollar
Cuenta
Descargar
Desarrollar
Entrar
Forgot Account/Password
Crear Cuenta
Idioma
Ayuda
Idioma
Ayuda
×
Entrar
Nombre de usuario
Contraseña
×
Forgot Account/Password
Translation Status of Español
Categoría:
Software
Gente
PersonalForge
Magazine
Wiki
Buscar
OSDN
>
Buscar Software
>
PHP WEBアプリフレームワーク
>
Ticket List/Search
>
Incidencia #9507
PHP WEBアプリフレームワーク
Descripción
Project Summary
Developer Dashboard
Página Web
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
Historial
Descargas
List of Releases
Stats
Código Fuente
Code Repository list
CVS
Ver Repositorio
Incidencia
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
Communication
Foros
List of Forums
Ayuda (1)
Open Discussion (1)
Mailing Lists
list of ML
Noticias
Incidencia #9507
Ticket List
Submit New Ticket
RSS
bogoYAML: 文字列のエスケープシーケンス解釈の不具合に対処するパッチ
Abrir Fecha:
2006-12-02 05:49
Última actualización:
2006-12-02 05:49
monitor
ON
OFF
Informador:
(Anónimo)
Propietario:
(Ninguno)
Tipo:
Patches
Estado:
Open
Componente:
(Ninguno)
Hito:
(Ninguno)
Prioridad:
5 - Medium
Gravedad:
5 - Medium
Resolución:
Ninguno
Fichero:
1
Details
Responder
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 History (1/1 Histories)
2006-12-02 05:49
Updated by: None
File
1647: EscapeSequence.patch
is attached
Attachment File List (
1
)
Attachment File List
EscapeSequence.patch
(1KB)
patch file
Editar
Add Comment
You are not logged in.
I you are not logged in, your comment will be treated as an anonymous post. »
Entrar
Add Comment
Vista previa
Submit
文字列のエスケープシーケンスの解釈が適切に行われず、
データの読み出し時に文字列を破壊する不具合が存在しま
す。
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. パッチ
添付