PHP General Questions & Answers

Here’s a great explanation of some common questions from people who are learning PHP. The author discusses the differences among the include(), include_once() and require() statements and also talks about the differences between if() and switch() statements. Good food for thought, so I’m reblogging it for my friends.

Web Development

Question1: What are the differences between require and include, include_once?
Answer:
File will not be included more than once. If we want to include a file once only and further calling of the file will be ignored then we have to use the PHP function include_once(). This will prevent problems with function redefinitions, variable value reassignments, etc.

The major difference between include() and require() is that in failure include() produces a warning message whereas require() produces a fatal errors.

Question2: What are the differences between include() and include_once() functions?
Answer: include_once() will use the specified file only once. include and require will use the specified file as many time we want. If include_once() is used before with same name, it can not done again

Question3: What is difference between echo and print?
Answer: print and echo are more or less the same; they are both language constructs that display strings…

View original post 106 more words

Logging Out of Facebook in C# Without 0Auth

InPursuit

I’ve never done anything in C# before the company bought me this new laptop. The old machine I have that is running Vista won’t install Microsoft’s Visual Studio, so I haven’t been able to run it. I wasn’t aware of how much you can do with their free Express package until I decided, on a lark, to try it.

I am amazed at how easy it is to work in C# with my knowledge of C, C++ and Java. I am by no means proficient in those yet but the combination of knowledge from the different packages transfers easily. So, I’m doing what I proposed for a marketing presentation in college; I’m writing a package to automate tasks on several social media sites.

I want the program to automate tasks the way a human does them, filling out forms and clicking buttons instead of using the APIs of those respective sites. I don’t want the package to need keys for 0Auth because you are inherently restricted in the functionality you can provide by the limitations of the API and the limitations of the agreement you enter into with the sites for interfacing your software with their site.

Houston, I have a problem!

I’ve built the GUI and some basic functionality. Now I’m working on the nitty gritty, interfacing with the web pages through the web browser I plugged into the program. The difficult part of this is learning to navigate the document and interact with the web page. I was up until 7:00 a.m., researching solutions to this problem. I grabbed four hours sleep, then worked on the problem some more until I left to teach in the evening.

Houston, I’ve found some solutions!

I was sitting there with empty code on a button listener, trying to figure out how to write script to log out of Facebook. I read every article I could find, trying code only to erase it. Finally, right before dinner, I found some promising code on the MSDN site. This code had been regurgitated by other programmers but none of it seemed to work. This bit of code was more complete, so I tried it. I placed a message box strategically to tell me if the code was found on Facebook. It worked!

After dinner, I replaced the message box with code I also found on MSDN, changing it to fit my use, clicking the “Log Out” button on the Facebook logout form. Success!

This is the basic code needed to automate other interactions with forms on web pages. I’m providing the complete code for the event listener attached to the button so you can see how it works. The code searches the document for every instance of an “INPUT” element, looks for every one with a “type” of “submit” and checks each one of those for a “value” of “Log Out,” the name of the facebook button the user sees.

I have added more code that is not listed in this article to make this production ready, to make sure the document is fully loaded and to prevent errors in handling. However, the code I’ve listed here works and it takes me a huge leap forward in writing a usable program. I hope it is useful to you.

Facebook application logout using POST instead of 0Auth.

//
// This function is a button’s event listener.
private void button3_Click(object sender, EventArgs e)
{
//
// Check to see if there is a webpage (document) in the browser.
if (webBrowser1.Document != null)
{
//
// If something is there, inititalize the code to search for “INPUT” tags on the page.
HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName(“INPUT”);
//
// Each time you find an “INPUT” tag, do the following …
foreach (HtmlElement elem in elems)
{
//
// typeStr will get the “type” of each “INPUT” element it encounters.
// If a type is “submit,” check further …
String typeStr = elem.GetAttribute(“type”);
if (typeStr == “submit”)
{
//
// contentStr will get the “value” listed for each “type” in the element.
// If the value is “Log Out,” click that element
String contentStr = elem.GetAttribute(“value”);
if (contentStr == “Log Out”)
{
elem.InvokeMember(“click”);
}
}
}
}
}

Humans as Finite State Machines

Have you ever heard of an infinite state machine? It’s a theoretical concept of a machine that is large enough to hold all the information in the universe, under the assumption that the universe is infinite, of course. What we have in modern computers are finite state machines, devices that are finite in nature and can only hold so much data.

For monotheistic religions like Judaism, Christianity and Islam, God could be described as an infinite state machine. However, we take the concept further. Not only is there something that is able to hold all the information in the universe, this something also created the universe.

What does this say of human beings as we try to understand the universe around us? People grasp for truth and knowledge and, quite often, claim to have found universal truth.  Religious and non-religious people alike have a tendency to proclaim these things they believe as absolute truth, eschewing the beliefs of the people around them.

I’ve heard it said that the human brain can hold about ten terabytes of information. I don’t know if this information is correct but we do know that the human brain can hold a finite amount of information at one time. In fact, the human brain does not store and retrieve information the way a computer does. The things we learn must be learned by repetition; the brain categorizes what is important to remember by frequency of repetition. Those things that are repeated often and in large quantities can be readily and accurately remembered. It is said that college students retain, on average, about 25% of the things they learn in their classes after leaving college, retaining those things they use constantly on the job but forgetting those things they don’t use on a daily basis.

This information draw some very interesting conclusions about the relationship humans have with religion. The first thing is that people, in their finite state, do not have the facility to judge other people and the beliefs they have. What we learn is largely based on experience and we rely on repetition of those things that are important to our survival. Individual human experiences may have commonalities but there are so many things that are singular that we are best able to judge others only in general terms. We do not know the hearts and minds of others and, outside general observation, we are not well equipped to judge specifics of individuals.

This applies not only to religious people but to the non-religious as well. In Christianity, my religion, we are forbidden from judging others. For instance, it is not my place to judge whether an atheist is going to hell for not believing in God. How could I, when I know so little of that person’s motivation? On the other hand, the atheist, or even more to the point the anti-theist, has no place judging Christians, lumping all of Christian experience into the conservative, literal view often expressed by that group as the whole of religion. Likewise, people from different religions are not well-suited to judge each other. Because our ability to know and understand becomes more generalized as we move farther from our particular experiences, we cannot hope to understand the specifics of another’s feelings and motivations. Each person decides what is important based on different situations and circumstances, their brains retaining that which is oft repeated. This includes what they choose to feed into their brains as well as the experiences outside their control during formative years and the lasting impression they have.

This article serves as an admonishment to me first, then more generally to others. Not only is it forbidden in Christianity to judge other people past a certain point, it is scientifically improbable that I can do so with any substantial degree of certainty. It is within my realm to judge what contact I should have with that person, based on what I value and what that person brings to the table. However, beyond that, I must take a more general approach when passing any kind of lasting judgement on another human being, just as others should take a more general approach when drawing conclusions about me.

Like Adam and Eve in the second Genesis story, people put themselves in the position of God. Perhaps the real sin in knowing good and evil is that we assume, incorrectly, that we have the ability to use this knowledge wisely in our relationships with others.

Regular Expression to Find URLs in Java

I’ve been learning how to use regular expressions in Java and found that it’s hard to get some of the code working properly from tutorials and places like Stack Overflow. I thought it might be handy to provide a working script in Java that can return multiple URLs from a string.

So, I’ve modified code from Oracle’s tutorial on regular expressions, using a slight variant a regular expression I found on Stack Overflow. This class prompts you to input a string, then evaluates the string, returning all the URLs in the string. It does this by searching for href=”[any characters in the url]” and returning each instance of this in a separate line on the screen.

This code can easily be modified as a starting point for evaluating source code returned by a spider for evaluating links on a website. I hope it is useful for you.

/*
 * THIS WORK IS A DERIVATIVE OF CODE COPYRIGHTED BY ORACLE.
 * YOU MAY USE THIS WORK FREELY UNDER THE CONDITIONS OF THE ORACLE COPYRIGHT.
 * THE AUTHOR OF THE DERIVATIVE CODE DOES NOT REQUIRE ANY FURTHER ATTRIBUTION
 *
 * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Oracle or the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */ 

import java.io.Console;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexURL {
    public static void main(String[] args){
        Console console = System.console();
        if (console == null) {
            System.err.println("No console.");
            System.exit(1);
        }
        while (true) {
            Pattern pattern = 
            Pattern.compile("href=\"(.*?)\"");

            Matcher matcher = 
            pattern.matcher(console.readLine("Enter input string to search: "));

            boolean found = false;

            while (matcher.find()) {
                console.format("%s\n",
                    matcher.group(),
                    matcher.start(),
                    matcher.end());
                found = true;
            }

            if(!found){
                console.format("No match found.%n");
            }
        }
    }
}

Programming and Extremism

InPursuit

The evils of extremism are evident from code. Good code is written efficiently, doing only what is required to accomplish the task. Good code is written incrementally, making small changes over time.

In life, nature abhors extremes. Extremists follow single-minded goals, going far beyond what is necessary to handle the problems it seeks to solve. Unlike good code, extremism is incredibly inefficient. Good code remains efficient, accomplishing its task and exiting.

If leaders would become like code, the world would be a better place. Politicians budget great resources and establish new programs to accomplish their tasks. Good code only devotes the necessary resources to the task at hand.

If the world of people worked like good code, all things would benefit.

Pursuing a Dream Written in Code


InPursuit
What is this dream?

It all started years ago, when I was in my late teens. My friend, Bill, had a computer. I was enthralled with the things he could do with it. It was amazing to see the things he programmed on his Apple computer. I think it was the iie but I don’t remember the model number for sure. Unfortunately, Bill didn’t see his dream of being a programmer. He died of leukemia when he was about 18 or 19 years old. I think he would have been a great contributor to excellence in the computer-driven world we have today.

I’ve wandered my own path in life but computers and music have always been of prime importance. I tried computer programming when I was younger but the math classes discouraged me. I’ve taught music forever, own and operate my own business that does a variety of media production (including music and video) and teaches music and art in our local community. I worked as a technical writer for a number of years, went to school for music and to learn the business of the entertainment industry, and also write and manage the company’s web pages. My interest in programming has never left but my own near death experience in November 2012 has given me an enhanced appreciation of life and the impetus to do the things I’ve wanted to do for a long time.

So, Here’s the Plan

I am currently doing websites in PHP and HTML (my strongest web languages), with MySQL and CSS (necessary companions) and a smattering of Javascript (my weakest language and the closest to being my nemesis). I will be working to update these skills as I go in my daily work.

The areas of interest I have in learning and using additional languages include refreshing my knowledge of C, continuing in C++ and getting farther with Java than I have gone. I learned C years ago but got stuck on pointers. How silly that seems now. I didn’t get very far with C++; I’m going through the tutorial now and can tell you that a couple of years makes a big difference. I stopped for a while in Java but need to go through all the object oriented stuff more fully.

Will You Join Me on My Journey?

I will be posting about my journey here as I strive to become a better programmer. It doesn’t mean I will only post about computer programming. I will also be posting about music, my other great passion, and the two great things you are never supposed to discuss in polite company, namely, religion and politics. You are welcome to join me as I continue a journey that is years in the making. There may be wisdom and wit; that often happens when I’m at my best. You may also, from time to time, catch me at my worst. I hope you will gain something from every minute of it.