Filling an Array with Objects in PHP

While working in PHP I found the need to fill an array with new objects on the fly. So at first I tried the array_fill function that worked fine for values but when I tried an object I found it was the same object in every position meaning if I modified one they all changed. What I needed was a new object in each. The easiest way I found to do that was a for loop.

The following doesn’t work correctly

$arr = array_fill(1,12,new MyObject());

So to accomplish the same idea I did the following

     $arr=array();

     for($i=1;$i<=12;$i++)
     {
          //Fill Array with new object
          $arr[$i]=new MyObject();
     }

pptx mime type

I was working with a CMS and found that one file was not downloading correctly people were saying that the file was being zipped up by the CMS. Well it turns out it was the issue with IE6 and a bad MIME Type. The fix is simple for pptx you need the mime type application/vnd.openxmlformats-officedocument.presentationml.presentation once that was added everything was working correctly. With out this a PPTX file will download as a zip.

A few links on the subject:

Oracle Removing Newline Chars

We were trying to trim white space from a column that had some newlines. The problem was the oracle trim() was only removing spaces. We found that we had to do two Replace operations Replace(col,char(10),”) and Replace(col,char(13),”) one for linefeed and one for newline. I switch between many Languages and I found it annoying I couldn’t use \n or \r but all well I don’t use Oracle that often.

JavaScript Passing by Value into an Inline Function

I have a web page that needs to go through a bootstrap step in order to make all the correct Ajax calls. So I was simply looping through the results and making the Ajax call like the following. You will note that I needed to pass a name to the processing of the data returned but my first attempt was not working.

    for(i=;i<myJSONObject.campus.length;i++)
    {
      campus_name = myJSONObject.campus[i].name;
      var campURL=myJSONObject.campus[i].url;
      $.ajax({
            type:"post",
            url: campURL+"/fetchcampusdata.jsp?campusid="+id,
    	datatype:"JSON",
    	cache: false,
    	success: function(data2)
    	{
    		processCampusData(data2, campus_name);
    	},
    	error: function(request,error)
            {
    		alert("error in processing campus data: "+error) ;
    	}
      });

    }

That code was not working correctly as all the names were coming up as the last one in the loop. And thinking more about it that makes perfect sense. The problem is when the success function fires it looks back to the Activation Record which contains campus_name which has been modified by the loop. So what I need to do to fix it was simply move the Ajax call to a function so an AR would be created for each call allowing me to use the campus_name variable correctly.

    for(i=;i<myJSONObject.campus.length;i++)
    {
      campus_name = myJSONObject.campus[i].name;
      var campURL=myJSONObject.campus[i].url;
      callFetch(campURL[],myJSONObject.campus[i].id,campus_name);
    }

    function callFetch(url,id,campus_name)
    {
      $.ajax({
            type:"post",
            url: url+"/fetchcampusdata.jsp?campusid="+id,
    	datatype:"JSON",
    	cache: false,
    	success: function(data2)
    	{
    		processCampusData(data2, campus_name);
    	},
    	error: function(request,error)
            {
    		alert("error in processing campus data: "+error) ;
    	}
      });
    }

HTML Table Row Height Hack

Working with a fixed height and width table I found a problem where rows were expanding too much I needed each row to only grow in height enough to contain the text and not fill the rest of the table. The number of rows was dynamic but the height fixed. The hack is simple add a height to each row of 1px which will make it so the rows only grow enough to contain your text then add a last row to act as a buffer with no height. Below the fold I have examples.

    <table height="200px">
        <tr height="1">
            <td><img src="example.gif"/></td>
            <td>Some Text</td>
        </tr>
        <tr height="1">
            <td><img src="example2.gif"/></td>
            <td>Some More Text</td>
        </tr>
        <tr><td colspan="2"/></tr> <!--The Buffer Row-->
    </table>