2010-10-27 5 views
0

J'essaye de déplacer un ancien site ASP classique pour qu'il fonctionne en PHP. J'en réécris des morceaux, mais j'ai rencontré la fonction suivante qui me cause quelques problèmes. Fondamentalement, la fonction FixForSQL est exécutée sur tout avant de l'ajouter à la base de données, puis FixForHTML est exécuté sur les données retournées avec une requête SQL pour le formater pour l'affichage. En ce moment si j'affiche un bloc de texte récupéré de la base de données en PHP il montre comme un énorme bloc de texte sans rupture de paragraphe, je présume parce que je n'ai pas fait le Chr(13) et Chr(9) est remplacé!Convertir du code ASP en utilisant Chr (13) à PHP

Est-ce que quelqu'un sait comment reproduire ce qui se passe dans PHP 5?

Function FixForHTML(tmpText1) 
    Dim tmpText2 
    tmpText2 = tmpText1 
    tmpText2 = Replace(tmpText2,Chr(13),"</p><p>" & vbCrLf) 
    tmpText2 = Replace(tmpText2,Chr(9),"&#xa0;&#xa0;&#xa0;&#xa0;") 
    FixForHTML = tmpText2 
End Function 

Function FixForSQL(tmpText1) 
    Dim tmpText2 
    tmpText2 = tmpText1 
    tmpText2 = Replace(tmpText1,vbCrLf,Chr(13)) 
    tmpText2 = Replace(tmpText2,Chr(39),String(2,39)) 
    FixForSQL = tmpText2 
End Function 

Répondre

3

Chr(13) est le caractère dont le code ASCII est 13. Vous pouvez l'obtenir en PHP avec, vous l'aurez deviné, chr(13).

13 est le code pour Cariage return. Alors que 9 est pour Onglet horizontal. En PHP, vous pouvez également obtenir ces caractères dans une chaîne parsable (un délimité par " s) avec \n, respectivement \t.

ASCII table

Exemple de code pour PHP:

$text = str_replace(array("\n", "\r"), array("</p><p>", "&#xa0;&#xa0;&#xa0;&#xa0;"), $text); 

En ce qui concerne la fonction FixForSQL, il remplace simplement ' caractères avec '' pour leur échapper pour la requête SQL.

+0

Fantastique, merci beaucoup –

Questions connexes