タグ:Corona

ランキング管理用APIを作りたくて、PHPとcoronaを行ったり来たりしていますが、network.requestを使用してWEBからデータを引っ張ってきたらHTMLタグまで綺麗に読み込んでしまう…。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>PHPテスト</title>
</head>
<body>
[ここにPHPからの戻り値が記載してある。]
</body>
</html>

PHPからの戻り値がほしいだけで、それ以外は不要。
なので、 network.requestで返って来た値からタグをバッサリ切ってしまうコードを追加。

--strにHTMLタグ付きの値を放り込めば、それを削除して返してくれる。
function htmltagdelete(str)
local tagpattrn
tagpattrn="\n" --HTML構文上の改行コードには何ら意味が無いので削除!
str = string.gsub(str,tagpattrn,"")

tagpattrn="<br/>" --HTML構文上の改行はBRタグなのでBRタグのものは改行コードに変換!
str = string.gsub(str,tagpattrn,"\n")

tagpattrn="<BR/>"
str = string.gsub(str,tagpattrn,"\n")

tagpattrn="<BR>"
str = string.gsub(str,tagpattrn,"\n")

tagpattrn="</p>" --Pタグ(段落)の終了コードも改行と同じような意味合いがあるので、改行コードに変換!
str = string.gsub(str,tagpattrn,"\n")

tagpattrn="</P>"
str = string.gsub(str,tagpattrn,"\n")

tagpattrn="<title>.-</title>"
str = string.gsub(str,tagpattrn,"")

tagpattrn="<.->"
str = string.gsub(str,tagpattrn,"")
return str
end

とりあえず、これでHTMLタグを除外出来た。
もう少しスッキリスべきなんだろうが・・・。 
最後の、tagpattrn="<.->"だけど、 tagpattrn="<.+>"にすると、全て消えてしまった。
"-"であれば、マッチする最小限の範囲に展開されるから正しく処理がされると。 

↑このページのトップヘ