Gå til innhold

Trenger hjelp med uthenting av data fra XML-feed


Anbefalte innlegg

Jeg poster bare hele tabellen med php koden så kan du få alt :!:

 

<?php 
include 'class.avinor.php';
?>
</p>
<div class="pageDemo">
 <h1 class="bold">
   <?php 
	$avinor 	= new avinor();
	$timeNow 	= time();

	if(isset($_POST) && isset($_POST['btnSearch'])){
		$airport 	= $_POST['airport'];
		$timeFrom	= $_POST['timeFrom'];
		$timeTo		= $_POST['timeTo'];
		$direction	= $_POST['direction'];
	}else{

		$airport 	= "TRD";
		$timeFrom	= 0;
		$timeTo		= 24;
		$direction	= "0";
	}

	$directions = array(
		'0' => 'Begge retninger',
		'A' => 'Ankomster',
		'D' => 'Avganger'
	);
?>
 </h1>
 <div class="postmeta">
     <form action="#" method="post" name="doSearchFlight" id="doSearchFlight">
       <label>Flyplass: </label>
       <select name="airport">
         <option value="TRD">TRD</option>
       </select>
       <label> Retning:</label>
       <select name="direction">
         <?php foreach($directions as $dirValue => $dirMsg):?>
         <option value="<?php echo $dirValue; ?>" <?php echo ($dirValue == $direction ? 'SELECTED' : ''); ?>><?php echo $dirMsg; ?></option>
         <?php endforeach; ?>
       </select>
       <label> Fra:</label>
       <select name="timeFrom">
         <?php 
				for($i = 0; $i <= 24; $i++):
					$t = 3600 * $i;
					$t = date('H', ($timeNow - $t));

			?>
         <option value="<?php echo $i;?>" <?php echo ($timeFrom == $i ? 'SELECTED' : ''); ?>><?php echo $t;?>:00</option>
         <?php endfor; ?>
       </select>
       <label> Til:</label>
       <select name="timeTo">
         <?php 

				for($i = 0; $i <= 24; $i++):
					$t = 3600 * $i;
					$t = date('H', ($timeNow + $t));
			?>
         <option value="<?php echo $i;?>" <?php echo ($timeTo == $i ? 'SELECTED' : ''); ?>><?php echo $t;?>:00</option>
         <?php endfor; ?>
       </select> 
       <label></label>
       <input type="submit" value="Vis" name="btnSearch" />
     </form>
 </div>
 <?php 
	function getHoursFromDate($time){
		date_default_timezone_set('UTC');
		if($time != ""){
			$currentTime 	= str_replace("T", " ", $time);
			$date 			= new DateTime($currentTime);

			$timeZone		= new DateTimeZone('Europe/Oslo');
			$date->setTimezone($timeZone);

			return $date->format('H:i');
		}

		return '';
	}

	$avinor->setAirport($airport)
		   ->setTimeFrom($timeFrom)
		   ->setTimeTo($timeTo);

	if($direction != "0")
		$avinor->setDirection($direction);

	$result = $avinor->getResult();
?>
 <table width="960">
   <thead>
   </thead>
   <tr>
     <td width="80"><strong>Retning:</strong></td>
     <td width="69"><strong>Tid:</strong></td>
     <td width="107" class="align-left"><strong>Destinasjon:</strong></td>
     <td width="96"><strong>Rutenr:</strong></td>
     <td width="133"><div align="left"><strong>Flyselskap:</strong></div></td>
     <td width="85"><div align="left"><strong>Status:</strong></div></td>
       <?php 
		foreach($result as $flight):

			$avg 	= getHoursFromDate($flight['scheduleTime']);
			$status	= $flight['status']['code']['no'] . ' ' . getHoursFromDate($flight['status']['time']);

			if($flight['airport']['code'] == $avinor->getAirport() && $flight['direction'] != "A"){
				$airport = $flight['viaAirport'][0]['name'];
			}else $airport = $flight['airport']['name'];

			if($flight['direction'] == "A"){
				$fligtIcon = array(
					'src' => 'iconArrowDown.png',
					'text'=> 'Ankomster'
				);
			}else{
				$fligtIcon = array(
					'src' => 'iconArrowUp.png',
					'text'=> 'Avganger'
				);
			}
	?><td width="18"></td>
   </tr>
   <tr>
     <td class="news"><img src="gfx/<?php echo $fligtIcon['src']; ?>" alt="<?php echo $fligtIcon['text']; ?>" /></td>
     <td><?php echo $avg; ?></td>
     <td><?php echo utf8_decode($airport); ?></td>
     <td><?php echo $flight['flightId']; ?></td>
     <td><img src="<?php echo $flight['airline']['icon']; ?>" alt="" class="airlineIcon" /> <?php echo utf8_decode($flight['airline']['name']); ?></td>
     <td><?php echo $status; ?></td>
   </tr>
   <?php endforeach; ?>
 </table>

Lenke til kommentar
Videoannonse
Annonse

Sikkert et dumt spørsmål, men har du sjekket i databasen/der hvor dataene er lagret at de ikonene som ikke vises faktisk eksisterer? Og da snakker jeg ikke om bildefilene.

 

Oppdatering: Prøv var_dump( $result ) rett etter foreach($result as $flight): og se om alle dataene er korrekte.

Endret av Runar
Lenke til kommentar

Hva du mener med det første spørsmålet?

 

 

Når jeg prøver å sette inn var_dump... ettter forech(result tingen og går inn på www.trondheimlufthavn.net/Flytider.php kommer bare denne meldingen:

 

"Parse error: syntax error, unexpected T_VARIABLE in /home/trondh/www/Flytider.php on line 169"

Lenke til kommentar

Hva du mener med det første spørsmålet?

Det jeg mener er at jeg ikke finner noen åpenbare feil i koden din, så jeg mistenker at problemet ligger i selve databasen hvor du henter data fra. Hvor kommer $result fra?

 

Når jeg prøver å sette inn var_dump... ettter forech(result tingen og går inn på www.trondheimlufthavn.net/Flytider.php kommer bare denne meldingen:

 

"Parse error: syntax error, unexpected T_VARIABLE in /home/trondh/www/Flytider.php on line 169"

Husket du å avslutte linjen med et semikolon?

Lenke til kommentar

Mener du det kan være bøgg hos Avinors XML?

XML'n jeg henter flytidene til TRD fra, ligger her: http://flydata.avinor.no/XmlFeed.asp?TimeFrom=1&TimeTo=24&airport=TRD&direction=D&lastUpdate=2009-03-10T15:03:00

 

Når jeg avsluttet linjen med semikolon, ble flytidene seende ut slik:

http://trondheimlufthavn.net/test.php

 

Flytidene kjører også på en slags "CSS rule" (om jeg kan kalle det, det), men den er satt opp som en php fil.

 

Den ser slik ut:

<?php
/**
* Avinor PHP API Library
* @version 1.1
* @author Flamur Mavraj - OXODesign TEAM
* @link http://www.oxodesign.no/avinorPhpApi
* @name avinor
* @license Domain Public
*/
class avinor{

private $timeFrom;
private $timeTo;
private $airport;
private $direction;
private $lastUpdate;
private $apiRequestUri 			= "";

protected $apiUrlFlights 		= "http://flydata.avinor.no/XmlFeed.asp?";
protected $apiUrlFlightStatus 	= "http://flydata.avinor.no/flightStatuses.asp";
protected $apiUrlAirportNames	= "http://flydata.avinor.no/airportNames.asp";
protected $apiUrlAirlineNames	= "http://flydata.avinor.no/airlineNames.asp";

public $statusCodes = array();
public $airlineNames= array(
	/**
	 * Avinor does not have thoose airline codes
	 * on their airline search api, so we created manually.
	 */
	'YK' => array('code' => 'YK', 'name' => 'Cyprus Turkish Airlines'),
	'MSC'=> array('code' => 'MSC', 'name' => 'Air Cairo')
);

public $airlineIconPath = "gfx/icons"; //  For Windows use "gfx\icons"
public $airlineIcons	= array();

public $airportNames= array(
	'LHE'=> array('code' => 'LHE', 'name' => 'Lahore')
);
public $flights		= array();

public function __construct() {

	/**
	 * Fetch airline icons from a directory
	 * Fetch airline names into an array
	 * Fetch airport names into an array
	 * Fetch flight status codes into an array
	 */
	$this->fetchAirlineIcons()
		 ->fetchAirlineNames()
		 ->fetchAirportNames()
		 ->fetchFlightStatusCodes();

	return true;
}

/**
 * Clear session cache
 * @param $name|null
 * @return avinor
 */
public function clearCache($name = null){
	if($name === null)
		unset($_SESSION['cache']);
	else
		unset($_SESSION['cache'][$name]);

	return $this;
}

/**
 * Return airport
 * @return string
 */
public function getAirport(){
	return $this->airport;
}

/**
 * Return current airport
 * @return array
 */
public function getCurrentAirport(){
	return $this->airportNames[$this->airport];
}

/**
 * Return array of airport names
 * @return array
 */
public function getAirportList(){
	return $this->airportNames;
}

/**
 * Define value for timeFrom
 * @param int $time
 * @return avinor
 */
public function setTimeFrom($time){
	$this->timeFrom = (int) $time;

	return $this;
}

/**
 * Define value for timeTo
 * @param int $time
 * @return avinor
 */
public function setTimeTo($time){
	$this->timeTo = (int) $time;

	return $this;
}

/**
 * Define airport
 * @param string $airport
 * @return avinor
 */
public function setAirport($airport){
	$this->airport = $airport;

	return $this;
}

/**
 * Define direction
 * @param string $direction
 * @return avinor
 */
public function setDirection($direction){
	$this->direction = $direction;

	return $this;
}

/**
 * Define lastUpdate
 * @param string $lastUpdate
 * @return avinor
 */
public function setLastUpdate($lastUpdate){
	$this->lastUpdate = $lastUpdate;

	return $this;
}

/**
 * Build flight request query
 * @return avinor
 */
private function buildRequestQuery(){
	$this->apiRequestUri = $this->apiUrlFlights;
	$this->apiRequestUri.= (isset($this->airport) ? 'airport=' . urlencode($this->airport) : '');
	$this->apiRequestUri.= (isset($this->timeTo) ? '&timeTo=' . urlencode($this->timeTo) : '');
	$this->apiRequestUri.= (isset($this->timeFrom) ? '&timeFrom=' . urlencode($this->timeFrom) : '');
	$this->apiRequestUri.= (isset($this->direction) ? '&direction=' . urlencode($this->direction) : '');
	$this->apiRequestUri.= (isset($this->lastUpdate) ? '&lastUpdate=' . urlencode($this->lastUpdate) : '');

	return $this;
}


/**
 * Get result of request. 
 * It returns the result or boolean if something goes wrong
 * @return array/boolean
 */
public function getResult(){
	try{
		// Check if airport is set, if not throw an exception
		if(!isset($this->airport))
			throw new Exception('Airport is not defined!');


		// Build flight request query
		$this->buildRequestQuery();

		// Get xml from the server
		$xml = new SimpleXMLElement($this->apiRequestUri, null, true);

		// Parse the XML output
		foreach($xml->flights->flight as $flight){
			// Create an array with the name of the airports the plane has been through
			$viaAirport = null;
			if(isset($flight->via_airport)){
				$viaAirport = array();
				$viaAirports = explode(",", (string) $flight->via_airport);
				foreach($viaAirports as $via){
					$viaAirport[] = $this->airportNames[(string) $via];
				}
			}

			$this->flights[(string) $flight['uniqueID']] = array(
				'airport'		=> $this->airportNames[(string)$flight->airport],
				'flightId'		=> (string) $flight->flight_id,
				'airline'		=> (isset($this->airlineNames[(string) $flight->airline]) ? 
										$this->airlineNames[(string) $flight->airline] : 
										array('code' => (string) $flight->airline, 'name' => (string) $flight->airline)
									),
				'domInt'		=> (string) $flight->dom_int,
				'scheduleTime'	=> (string) $flight->schedule_time,
				'direction'		=> (string) $flight->arr_dep,
				'viaAirport'	=> $viaAirport,
				'checkIn'		=> (isset($flight->check_in) ? (string) $flight->check_in : null),
				'gate'			=> (isset($flight->gate) ? (string) $flight->gate : null),
				'status'		=> (isset($flight->status) ? 
										array(
											'code' => $this->statusCodes[(string) $flight->status['code']],
											'time' => (string) $flight->status['time']
										) : null
									),
				'beltNumber'	=> (isset($flight->belt_number) ? (string) $flight->belt_number : null)		
			);
		}
	}catch (Exception $e){
		echo "Error: " . $e->getMessage();
		return false;
	}

	return $this->flights;
}

/**
 * Fetch airline icons from a directory
 * @return avinor
 */
private function fetchAirlineIcons(){
	if(isset($_SESSION['cache']['airlineIcons'])){
		$this->airlineIcons = unserialize($_SESSION['cache']['airlineIcons']);
		return $this;
	}

	try{
		$files = new DirectoryIterator($this->airlineIconPath);
	}catch (Exception $e){
		echo "<font style='color: #ff0000'>
			Error: Failed to open airlineIconPath: <b>" . $this->airlineIconPath . "</b></font>";
		return $this;
	}


	foreach($files as $file){
		if(!$file->isDot()){
			$fileInfo = pathinfo($file->getFilename());
			$this->airlineIcons[strtolower((string)$fileInfo['filename'])] = str_replace("\\", "/", (string) $file->getPathname());
		}
	}

	$_SESSION['cache']['airlineIcons'] = serialize($this->airlineIcons);

	return $this;
}

/**
 * Fetch flight status codes into an array
 * @return avinor
 */
private function fetchFlightStatusCodes(){
	if(isset($_SESSION['cache']['statusCodes'])){
		$this->statusCodes = unserialize($_SESSION['cache']['statusCodes']);
		return $this;
	}

	$xml = new SimpleXMLElement($this->apiUrlFlightStatus, null, true);

	foreach($xml->flightStatus as $status){
		$this->statusCodes[(string) $status["code"]] = array(
			'code'	=> (string) $status["code"],
			'no' 	=> (string) $status['statusTextNo'],
			'en' 	=> (string) $status['statusTextEn']
		);	
	}

	$_SESSION['cache']['statusCodes'] = serialize($this->statusCodes);

	return $this;
}

/**
 * Fetch airline names into an array
 * @return avinor
 */
private function fetchAirlineNames(){
	if(isset($_SESSION['cache']['airlineNames'])){
		$this->airlineNames = unserialize($_SESSION['cache']['airlineNames']);
		return $this;
	}

	$xml = new SimpleXMLElement($this->apiUrlAirlineNames, null, true);

	foreach($xml->airlineName as $airline){
		$this->airlineNames[(string) $airline["code"]] = array(
			'code' => (string) $airline["code"],
			'name' => (string) $airline["name"],
			'icon' => ( isset($this->airlineIcons[strtolower((string) $airline["code"])]) ? 
						$this->airlineIcons[strtolower((string)$airline["code"])] : 
						false)	
		);
	}

	$_SESSION['cache']['airlineNames'] = serialize($this->airlineNames);

	return $this;
}

/**
 * Fetch airport names into an array
 * @return avinor
 */
private function fetchAirportNames(){
	if(isset($_SESSION['cache']['airportNames'])){
		$this->airportNames = unserialize($_SESSION['cache']['airportNames']);
		return $this;
	}

	$xml = new SimpleXMLElement($this->apiUrlAirportNames, null, true);

	foreach($xml->airportName as $airport){
		$this->airportNames[(string) $airport["code"]] = array(
			'code' => (string) $airport["code"],
			'name' => (string) $airport["name"]
		);
	}

	$_SESSION['cache']['airportNames'] = serialize($this->airportNames);

	return $this;
}
}

Lenke til kommentar

Selvsagt henter du dataene i XML-format. Det skulle jeg ha tenkt på.

 

Uansett, etter å nå ha studert XML-dataene og kildekoden til diverse sider har jeg nå kommet frem til følgende: Flyselskapet hvor ikonet ikke vises starter med et tall (2N, i dette tilfellet). Navnene på flyselskap hentes fra denne siden hos Avinor, men 2N finnes ikke i listen.

 

Hvis du tar en titt på følgende to eksempler vil du se problemet:

 

Her vises ikonet som normalt:

["airline"]=>
   array(3) {
     ["code"]=>
     string(2) "DY"
     ["name"]=>
     string(9) "Norwegian"
     ["icon"]=>
     string(16) "gfx/icons/dy.png"
   }

 

Her er navnet på flyselskapet satt til det samme som flynummeret, trolig fordi flyselskapets navn ikke kan hentes fra Avinor:

["airline"]=>
   array(2) {
     ["code"]=>
     string(2) "2N"
     ["name"]=>
     string(2) "2N"
   }

 

Det du kan prøve, er å manuelt oppgi navnet på flyselskapet med kode 2N ved å legge det til i starten av API-filen:

public $airlineNames= array(
/**
* Avinor does not have thoose airline codes
* on their airline search api, so we created manually.
*/
'YK' => array('code' => 'YK', 'name' => 'Cyprus Turkish Airlines'),
'MSC'=> array('code' => 'MSC', 'name' => 'Air Cairo')
);

 

Hvis jeg ikke har oversett eller misforstått noe vesentlig skal dette løse problemet ditt.

Lenke til kommentar

Har nå prøvd disse løsningene:

 

'2N'=> array('code' => '2N', 'name' => 'Nextjet')

'2N'=> array('code' => 'NTJ', 'name' => 'Nextjet')

'NTJ'=> array('code' => '2N', 'name' => 'Nextjet')

'NTJ'=> array('code' => 'NTJ', 'name' => 'Nextjet')

 

Det eneste denne løsningen løste, var at flyselskapnavn ble endret fra 2N til NextJet. Und das ist gut :thumbup:

Endret av enva
Lenke til kommentar

Prøvde du å legge til Yuzmashavia, som, hvis jeg ikke tar helt feil, er flyselskapet som skjuler seg bak 2N?

 

Hvis du gjorde dette, og 2N fortsatt kommer opp som navnet på flyselskapet uten ikon, da er jeg helt tom for idéer.

 

Oppdatering: Du husker å avslutte linjen over med et komma? Av de løsningene du har prøvd, er det kun den første som er gyldig ifølge Avinor.

Endret av Runar
Lenke til kommentar
Du husker å avslutte linjen over med et komma? Av de løsningene du har prøvd, er det kun den første som er gyldig ifølge Avinor.

Yeap :yes:

 

But still not working :dontgetit:

 

EDIT:

Men som sagt, så er flyselskapnavn nå endelig endret

 

Før2n.jpg

 

NextJet.jpg

Endret av enva
Lenke til kommentar

Jeg har funnet feilen og skal prøve å forklare den på en forståelig måte.

 

I class.avinor.php finnes det en funksjon (fetchAirlineNames()) som lager en liste over alle flyselskaper, selv de som ikke har avganger/ankomster i det angitte tidspunktet. Denne funksjonen finnes på linje 288.

 

Den henter en liste i xmlformat fra Avinor (http://flydata.avinor.no/airlineNames.asp), går igjennom hvert flyselskap og lagrer dette i en ny array, $this->airlineNames. Denne arrayen inneholder hvert flyselskap som en underarray, som igjen inneholder kode, navn og ikon.

 

array(2) {
 ["2N"]=>
 array(2) {
   ["code"]=>
   string(2) "2N"
   ["name"]=>
   string(4) "Yuzmashavia"
 }
 ["SK"]=>
 array(3) {
   ["code"]=>
   string(2) "SK"
   ["name"]=>
   string(3) "SAS"
   ["icon"]=>
   string(16) "gfx/icons/sk.png"
 }
}

 

Det er her ting går galt. Som du sikkert husker, fantes ikke 2N, eller Yuzmashavia, i listen fra Avinor, så vi la det til manuelt i starten av klassen. Alle ikonene som eksisterer i den angitte mappen er tidligere lagret i en array, $this->airlineIcons, som nå skal brukes.

 

array(1) {
 ["2n"]=>
 string(16) "gfx/icons/2n.png"
 ["sk"]=>
 string(16) "gfx/icons/sk.png"
}

 

fetchAirlineNames() bruker nå denne arrayen som grunnlag for å angi hvert enkelt flyselskaps ikon. Dette skjer ved at funksjonen ser om flyselskapets kode ($airline['code']), eksisterer i $this->airlineIcons. Dette skulle man jo tro fungerer, da du ser 2N er tilstede i begge eksemplene.

 

Problemet er bare det at $airline['code'] hentes fra xmlfilen fra Avinor, og de flyselskapene vi manuelt har lagt til blir ikke tatt med. Den finner derfor aldri flyselskapet 2N i utgangspunktet, og vi ender opp som vi har gjort nå.

 

Løsningen er skremmende enkel. Definer de manglende flyselskapenes ikoner i starten av klassen:

 

public $airlineNames= array(
/**
 * Avinor does not have thoose airline codes
 * on their airline search api, so we created manually.
 */
'2N' => array('code' => '2N', 'name' => 'Yuzmashavia', 'icon' => 'gfx/icons/2n.png')
);

 

Jeg kan med glede bekrefte at ikonet 2N nå vises korrekt.

Lenke til kommentar

Hehe, jeg har veldig lite peil på slikt uansett :whistle:

All credz to you :thumbup:

 

Litt tilbake på et spørsmål FlyKSU spurte om tidligere i denne tråd.

Er det forresten mulig å legge inn noe som gjør at enkelte rutenummer blir klippbare, noe á dette:

http://www.wideroe.n...rute/hammerfest

 

Altså på samme måte som med ikonene, du forhåndslager flere sider som skal vises for hvert enkelt rutenummer med litt info osv. Når dette rutenummeret så vises blir det automatisk til en lenke som peker til rett underside.

Er det mulig å fikse det slik at man kan trykke på selskapnavn for så å komme til undersider jeg har laget om hvert enkelt selskap?

F.eks trykker du på Norwegian logoen/navnet og da kommer du hit: http://trondheimlufthavn.net/Norwegian.html

 

Og eventuelt Destinasjon i tillegg. Om man f.eks trykker på Bergen så kommer man hit: http://trondheimlufthavn.net/Destinasjoner_Bergen.php

 

Noen som skjønte? -Runar? -OXODesign?

Anyone? :innocent:

Endret av enva
Lenke til kommentar

Er det mulig å fikse det slik at man kan trykke på selskapnavn for så å komme til undersider jeg har laget om hvert enkelt selskap?

F.eks trykker du på Norwegian logoen/navnet og da kommer du hit: http://trondheimlufthavn.net/Norwegian.html

 

Og eventuelt Destinasjon i tillegg. Om man f.eks trykker på Bergen så kommer man hit: http://trondheimlufthavn.net/Destinasjoner_Bergen.php

Dette skal nok la seg gjøre uten alt for store endringer :)

 

Se om du finner ut hvor følgende kode skal plasseres! Hint: toppen av tabellen.

 

<td>
<a href="/Destinasjoner_<?php echo utf8_decode($airport); ?>.html">
	<?php echo utf8_decode($airport); ?>
</a>
</td>
<td><?php echo $avg; ?></td>
<td>
<a href="/<?php echo utf8_decode($flight['airline']['name']); ?>.html">
	<img src="<?php echo $flight['airline']['icon']; ?>" alt="" class="airlineIcon" /> 
	<?php echo utf8_decode($flight['airline']['name']); ?>
</a>
</td>

 

Du kommer til å få et lite problem med noen av linkene, da navnet til blant andre flyselskapet Widerøe inneholder en Ø som må gjøres om til O. Dette kan du få lov til å prøve å løse selv, men jeg skal også her gi deg et hint: str_replace()

 

Lykke til, og si ifra hvis det blir for vanskelig!

Lenke til kommentar

Men skjønte ikke helt den ÆØÅ tingen.

 

Om jeg har rett, så skal bla dette plasseres inn i tabellen min et sted:

 

// Outputs F because A is replaced with B, then B is replaced with C, and so on...
// Finally E is replaced with F, because of left to right replacements.
$search  = array('Ø', 'Å', 'C', 'D', 'E');
$replace = array('O', 'Å', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

Endret av enva
Lenke til kommentar

Men skjønte ikke helt den ÆØÅ tingen.

 

Om jeg har rett, så skal bla dette plasseres inn i tabellen min et sted:

 

[kode]

Nesten :)

 

Jeg ser hvor du fikk "left to right replacements" fra, men det eksempelet du fant blir feil i denne sammenhengen. Funksjonen str_replace() leter i $subject etter det vi har angitt i $search (array), og bytter det den finner ut med tilsvarende i $replace (array).

 

Her har jeg laget en enkel funksjon du kan bruke:

 

function fix_norwegian_characters( $subject )
{
// Hvilke bokstaver skal vi se etter?
$search  = array( 'Æ', 'Ø', 'Å', 'æ', 'ø', 'å' );

// Hvis de finnes, bytt de ut med følgende
$replace = array( 'A', 'O', 'A', 'a', 'o', 'a' );

// Hvis du opplever spørsmålstegn eller andre rare symboler
// istedet for AOA, fjerner du kommentaren fra linjen under:
// $subject = utf8_decode( $subject );

// Returner nytt, korrekt navn
return str_replace( $search, $replace, $subject );
}

 

Et eksempel på hvordan du bruker funksjonen hører selvsagt med:

 

<td>
       <a href="/<?php echo fix_norwegian_characters($flight['airline']['name']); ?>.html">
               <img src="<?php echo $flight['airline']['icon']; ?>" alt="" class="airlineIcon" /> 
               <?php echo fix_norwegian_characters($flight['airline']['name']); ?>
       </a>
</td>

Endret av Runar
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...