I am importing allot of product data from an XML file (about 5000 products). When I run the script I can make it work in about 10-12 seconds.
Now, when I add this punctuation function which makes sure each product description ends with a punctuation sign, the code runs until the php 60 seconds loadtime on my server but I'm not getting any errors. I have error reporting turned on. I just get a final error that the script could not load in 60 seconds.
The question is, looking at this function, is it that resource consuming? What can I do to make it faster?
Upon comments, the problem could be the pregmatch loop. Let me explain what this function does. It check if the last character of the string is an punctuation mark. If it's not, it matches the last char and checks again.
function punctuation($string){
if(strlen($string) > 5){
// Get $last_char
$desired_punctuation = array(".",",","?","!");
$last_char = substr($string, -1);
// Check if $last_char is in the $desired_punctuation array
if(!in_array($last_char, $desired_punctuation)){
// strip the $mytrim string and get only letters at the end;
while(!preg_match("/^[a-zA-Z]$/", $last_char)){
$string = substr($string, 0, -1);
$last_char = substr($string, -1);
}
// add "." to the string
$string .= '.';
}
}
return $string;
}
If the function is ok, the long runtime must come from something else which I'll have to discover.
I just want your input on this part.