Strrpos

Per velocizzare la nuova versione di rewriteurls, volevo fare uso della funzione strrpos di PHP.

Tra l’altro non pensavo esistesse la funzione che facesse al caso mio, invece eccola là 😊 .

Tuttavia la tega arriva comunque: su PHP 4 il valore ricercato deve essere una stringa di 1 carattere che poi è trasformata in numero, quello del carattere.

Invece in PHP 5 tutto ok.

Non è la prima volta che mi trovo di fronte a una scelta simile, ma visto che sto lavorando per Flatpress ho preferito tenermi compatibile con PHP 4, così ho fatto una funzione che potesse avere lo stesso esito, ed eccola qua.

Anche gli offset negativi sono supportati 😁 .

function strrpos_hack($haystack, $needle, $offset=0) {
	if(version_compare(PHP_VERSION, '5.0.0', '<')) {
		# PHP 4
		$oldpos=false;
		$len=strlen($needle);
		if($offset<0) {
			$haystack=substr($haystack, 0, $offset);
			$offset=0;
		}
		$off=$offset;
		while(($pos=strpos($haystack, $needle, $off))!==false) {
			$off=$pos+$len;
			$oldpos=$pos;
		}
		return $oldpos;
	} else {
		return strrpos($haystack, $needle, $offset);
	}
}

La prima cosa che fa è controllare se è PHP 5, tuttavia all’inizio io che non dispongo di un PHP4 (troppe noie ad attivarlo su Altervista), così risparmia un bel po’ di lavoro a noi. … [Leggi il resto]