Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] funkcja ktora wyciaga tekst
Forum PHP.pl > Forum > Przedszkole
tomek_13
pobieram strone za pomoca
  1. <?php
  2. $string = file_get_contents ( $url );
  3. ?>

i teraz w tej zmiennej sting mam cos takiego
  1. jakis tam kod strony
  2. <style type="text/css" id="newStyles">
  3. sfhksjdfsdjhfjhsdfdsf
  4. sdfdsfdsfsdfsdfdsfdsf
  5. dalsza czesc kodu strony

i teraz jak z tej zmiennej string wyciac wszystko co jest w znacznikach style
czyli ma to wygladac tak
  1. jakis tam kod strony
  2. dalsza czesc kodu strony

czy jest jakas funkcja w php ktora to zrobi
cojack
http://us3.php.net/manual/en/function.explode.php

proszę bardzo.
behu
  1. <?php
  2. $string = 'jakis tam kod strony
  3. <style type="text/css" id="newStyles">
  4. sfhksjdfsdjhfjhsdfdsf
  5. sdfdsfdsfsdfsdfdsfdsf
  6. </style>
  7. dalsza czesc kodu strony';
  8.  
  9. echo preg_replace('/<style.*</style>/', '', $string);
  10. ?>
tomek_13
dzieki behu to dziala dobrze
ale czy mozna by to bylo zastapic jakas funkcja bez uzywania wyrazen regularnych
Maxik
Mozesz się bawić z operacjami na stringach, ale to nie ma sensu. Tak jest prościej i wystarczająco wydajnie.
tomek_13
jesli chodzi o
  1. <?php
  2. echo preg_replace('/<script.*</script>/', '', $string);
  3. ?>

to jest z tym maly problem bo jak mam np w stringu cos takiego
  1. <script type="text/javascript">WP.stat.gemius('coWacc7R.xHk.xzhRC.LgpQJ38OGWzuyOAxvi8UATAr.s7');WP.stat.dot('stronaglowna','1246545801.938','click');</script>

to dziala dobrze tz usuwa ten caly fragment
ale jak mam tak
  1. <script type="text/javascript">
  2. WP.stat.gemius('coWacc7R.xHk.xzhRC.LgpQJ38OGWzuyOAxvi8UATAr.s7');
  3. WP.stat.dot('stronaglowna','1246545801.938', 'click');
  4.  

to wtedy usuwa tylko znaczniki a to co jest pomiedzy nimi pozostawia poniewaz sa tam entery
Maxik
  1. <?php
  2. echo preg_replace('/<script.*</script>/m', '', $string);
  3. ?>
tomek_13
nic to nie pomoglo
behu
  1. <?php
  2. echo preg_replace('/<script([[:space:]]|.)*</script>/', '', $string);
  3. ?>
tomek_13
kurde a juz myslalem ze jest wszystko ok
dziala to dobrze gdy string nie jest zbyt dlugi
no ale np jak pobiore sobie jakas stone np wp.pl do stringa
to wtedy jak dam
  1. <?php
  2. $string = preg_replace('/<head([[:space:]]|.)*</head>/', '', $string);
  3. ?>

to wtedy dostaje biala strone i komunikat Połączenie z serwerem zostało zresetowane podczas wczytywania strony.
a powinno to usunac wszystko co jest w head
w czym moze byc problem
Maxik
Zainteresuj się przetwarzaniem XML w PHP i w ten sposób wycinaj to co chcesz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.