You are hereBlogs / rahul's blog / VB.NET equivalent to PHP functions

VB.NET equivalent to PHP functions


rahul's picture

By rahul - Posted on 27 June 2010

I am currently working on an assignment to convert a Perl/PHP based intra-net project to an ASP.NET web application.

The complexity of the project has been significant as it involves the management of an internal Windows 2003 Active Directory setup for a large governmental organization, integrated with a proprietary ticketing system, and a Sql Server database. The (sometimes cryptic) non object-oriented PHP/Perl code together with a severely limited testing environment have only made the task that more difficult.

Anyways, I had to create VB.NET equivalent for some PHP functions while working on the migration. I am posting the functions here in the hope that they might be useful to someone googling around.

Currently, the PHP functions converted include md5, base64_encode, base64_decode, chunk_split, and mail.
I might add to this list of converted functions as and when I convert more of them depending upon requirements of my assignment.

So, here are the converted functions:

 

Public Module PhpToVb
	Public Function md5(ByVal input As String) As String
		Dim x As New System.Security.Cryptography.MD5CryptoServiceProvider()
		Dim bs As Byte() = System.Text.Encoding.UTF8.GetBytes(Input)
		bs = x.ComputeHash(bs)
		Dim s As New System.Text.StringBuilder()
		For Each b As Byte In bs
			s.Append(b.ToString("x2").ToLower())
		Next
		Dim password As String = s.ToString()
		Return password
	End Function

	Public Function base64_encode(ByVal input As String) As String
		Dim bytesToEncode As Byte()
		bytesToEncode = Encoding.UTF8.GetBytes(input)

		Dim encodedText As String
		encodedText = Convert.ToBase64String(bytesToEncode)

		Return (encodedText)
	End Function

	Public Function base64_decode(ByVal input As String) As String
		Dim decodedBytes As Byte()
		decodedBytes = Convert.FromBase64String(input)

		Dim decodedText As String
		decodedText = Encoding.UTF8.GetString(decodedBytes)

		Return (decodedText)
	End Function

	Public Function chunk_split(ByVal input As String, Optional ByVal chunkLen As Integer = 76, Optional ByVal sep As String = vbCr & vbLf) As String

		If (chunkLen < 1) Then
			Throw New ArgumentException("Invalid value for chunklen, must be greater than zero.")
		End If

		Return (String.Join(sep, System.Text.RegularExpressions.Regex.Split(input, ",{0," & chunkLen & "}", RegexOptions.Multiline)))
	End Function

	Public Sub mail(ByVal [to] As String, ByVal subject As String, ByVal body As String, ByVal headers As String)
		Dim split = headers.Split(vbCrLf)

		Dim mail As New System.Net.Mail.MailMessage

		For Each header As String In split
			Dim index As Integer = header.IndexOf(":")
			Dim key As String = header.Substring(0, index)
			Dim val As String = header.Substring(index + 1).Trim()

			mail.Headers.Add(key, val)
		Next

		mail.Subject = subject
		mail.Body = body

		mail.To.Add([to])
		Dim client As New System.Net.Mail.SmtpClient()

		client.Send(mail)

	End Sub
End Module

 

Post new comment

The content of this field is kept private and will not be shown publicly.
Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.

Recent comments