Zum Inhalt springen

index_phash.cHashParams auswerten

Erstellt am 21. Juni 2007 · 2 Antworten · letzte Antwort am 25. Juni 2007

Tags: Frage

m3typo3 ·

Hallo Typo3'ler,

ich baue gerade für eine SOAP-Schnittstelle eine Volltextsuche mit XML Ausgabe. Dafür benutze ich die MySQL-Struktur und MySQL-Daten der IndexedSearch Extension.

Die Beziehungen zwischen den Tabellen der IndexedSearch Extension habe ich soweit "entdeckt", nur benötige ich jetzt einen Tipp wie ich die Werte aus index_phash.cHashParams entschlüsseln bzw. eine URL daraus stricken kann.

Wäre für jeden Tipp dankbar!

m3typo3 ·

Na, hat noch keiner den passenden RegEx? Oder eine andere Möglichkeit den in der DB gespeicherten String zu zerlegen und zu einer URL zu formulieren?

Beispiel eines cHashParams Eintrags

a:2:{s:18:"tx_ttnews[pointer]";s:1:"5";s:5:"cHash";s:10:"5f3b9bc7fe";}

oder

a:3:{s:18:"tx_ttnews[backPid]";s:1:"1";s:18:"tx_ttnews[tt_news]";s:3:"849";s:5:"cHash";s:10:"de2b05f2a9";}

Jeder, der mir einen brauchbaren Tipp gibt wird eine Woche in meine Morgengebete eingeschlossen! *versprochen*

m3typo3 ·

Ich hab mich mal versucht ....

$cHash = 'a:3:{s:18:"tx_ttnews[backPid]";s:1:"1";s:18:"tx_ttnews[tt_news]";s:3:"381";s:5:"cHash";s:10:"b8db673ae3";}';
$cHash_path = '';

if( preg_match ('/{(.*)}/', $cHash, $result_string)) {
	$result_array = explode (';',$result_string[1]);
	for ($i=0; $i<=count ($result_array); $i++) {
		preg_match ('/"(.*)"/',$result_array[$i],$result_array2);
		if(!empty ($result_array2[1])) {	
			if ( $i%2==0) { 
				$cHash_path .= '&';
			}else{
				$cHash_path .= '=';
			}
			$cHash_path .= $result_array2[1];
		}
	}
}

echo $cHash_path;

... ist sicher nicht die sauberste und beste Lösung aber funktioniert erstmal.