Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ylimääräiset välilyönnit pois

karvinen [27.10.2006 11:43:26]

#

Miten saan poistettua $sivu muuttujasta ylimääräiset välilyönnit ja rivinvaihdot.

Jättäisi ainoastaan yhden välilyönnin joka sanan väliin...
Ei millään muista millä funktiolla tuo onnistuu...


Eli muuttujassa oleva tieto on:

teksti joo kyllä

jooo eo ksiksi fjjfjj

Antti Laaksonen [27.10.2006 12:11:54]

#

Yksi tapa on käyttää säännöllistä lauseketta:

<?php

$teksti = "eka     toka kolmas\n  \nneljäs    viides\n   kuudes";

$teksti = preg_replace("/[ \\n\\r]+/", " ", $teksti);

echo "<pre>$teksti</pre>";

?>

Nyt kaikki välilyöntien ja rivinvaihtojen yhdistelmät muutetaan yhdeksi välilyönniksi.

karvinen [27.10.2006 14:58:29]

#

Vielä olisi sellainen ongelma, kun haen muuttujaan internetsivun sisällön, niin pitäisi saada pois java script ja css koodit.

Haen sivun:
$sivu = file_get_contents($osoite);

Poista html koodin:
$sivu = strip_tags($sivu)

Onko tuohon koodin poistoon jotakin parempaa systeemiä, niin saisi sivun sisällöstä ainoastaan tekstin näkyviin.

ajv [27.10.2006 15:36:49]

#

Sokkolainaus omista vanhoista koodeista:

<?php
$this->content = preg_replace('/<style[^>]*>[^<]+<\\/style>/i', ' ', $this->content);
$this->content = preg_replace('/<script[^>]*>[^<]+<\\/script>/i', ' ', $this->content);
?>

karvinen [27.10.2006 18:42:00]

#

Muuten toimii hienosti, mutta nuo tradedoubler palvelun mainokset ei lähde...

Yritin monella eri tavalla, mutta ei mene sitten millään jakeluun miten tuota pitäisi muuttaa, että saisi tuon allaolevan koodin pois...

<script language="javascript">
var uri = 'http://impfi.tradedoubler.com/imp/pool/js/1454/37590?' + new String (Math.random()).substring (2, 11);
document.write('<sc'+'ript language="JavaScript" src="'+uri+'" charset="ISO-8859-1"></sc'+'ript>');
</script>

karvinen [29.10.2006 10:41:39]

#

Onko tuossa itse java scriptissä joku mekkki mikä sotkee tuon poiston, vai mistähän tuo kiikastaa...

$sivu = file_get_contents("http://majakat.com");
$sivu = preg_replace('/<script[^>]*>[^<]+<\\/script>/i', ' ', $sivu);

Print"$sivu";

Tuossa tuo toimimaton koodi pähkinänkuoressa.


Siis tuolla sivun osoitteella ei ole väliä, vaan tuo majakat.com on tuossa vain esimerkkinä, sillä tuolla on kanssa noita mainoksia, jotka yritän poistaa...

karvinen [29.10.2006 16:32:01]

#

Sain tuon pois seuraavalla ratkaisulla...

Jos muilla tarvetta, niin tuossa alhaalla se olisi...

$sivu = preg_replace('/<!--.+?-->/','',$sivu);
$sivu = preg_replace("'<script[^>]*?>.*?</script>'si", "", $sivu);

Kiitokset vaivannäöstä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta