How would I perform this operation on a string in PHP?
Asked by
lefteh (
9434)
January 27th, 2009
So, basically, I have a bunch of data in this form:
<li>
<h2>Title</h2>
When: Tue Feb 10, 2009 7:20am to 8am EST<br>
<br>Who: Author
<br>Where: Place
<br>Event Status: Status <br/>
</li>
(It’s a Google Calendar XML file).
And I want to display it with only the title and the date. The title is its own field in the XML file, so that’s fine. But the date is part of a lumped-together “summary” field, which contains the when, the who, the where, and the status. So what I want to do is add something in my PHP loop that will trim down that entire field to just the date. So in the above example, it would print like this:
<li>
<h2>Title</h2>
Feb 10, 2009<br>
</li>
What string operations could do this? I wrestled with preg_replace to no avail.
Observing members:
0
Composing members:
0
4 Answers
That isn’t XML, that’s HTML. Can you not grab the data in a format where times are stamps?
You can use regular expressions, but I agree with richard: you shouldn’t have to grab the time data in a stamped format. Otherwise you have to convert it to a more suitable format, which will be significantly more difficult.
Yeah, from Google Calendar you can get much better output, surely. Also, there’s probably libraries out there that can help you with this (check out the Zend_GData Calendar component of the Zend Framework).
Still, a function that you might be interested in just because it’s intesting is strtotime which can be used in combination with date for normalisation. And the SimpleXML PHP class is very useful for working with XML.
@richardhenry: It’s HTML within the XML file. One of the well-known shortfalls of Google Calendar XML publishing is its lack of a time field in the normal XML file.
However, I just found an alternate XML file that has a more advanced structure, and includes a startTime element. Looks like I won’t have to break into Zend…thanks guys.
Answer this question
This question is in the General Section. Responses must be helpful and on-topic.