Προς το περιεχόμενο

str_replace php


Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα

 

Φτιαχνω ενα μικρο σκρπτ να παρω μερικα δεδμομενα που θελω απο ενα αλλο σιτε και εχω θεμα με το str_replace

 

κανω αυτο

if ( !preg_match( '|<TITLE>(.*?)</TITLE>|', $originalPage3 , $matchtitle ) )
{
}
$matchtitle = $matchtitle[1]; 

$title  = str_replace(' - Live', ' ', $matchtitle);
$title  = str_replace('somedomain.gr', ' ', $title);

οκ με τους αγγλικους χαρακτιρες αλλα με τα ελληνικα δεν δουλευει με τιποτα

το μνμ που θελω να αφαιρεσω ειναι αυτο ( - Live στο somedomain.gr ).

 

δοκιμασα και αυτο που βρηκα στο νετ

function greeklish($Name) 
{  
$greek   = array('α','ά','Ά','Α','β','Β','γ', 'Γ', 'δ','Δ','ε','έ','Ε','Έ','ζ','Ζ','η','ή','Η','θ','Θ','ι','ί','ϊ','ΐ','Ι','Ί', 'κ','Κ','λ','Λ','μ','Μ','ν','Ν','ξ','Ξ','ο','ό','Ο','Ό','π','Π','ρ','Ρ','σ','ς', 'Σ','τ','Τ','υ','ύ','Υ','Ύ','φ','Φ','χ','Χ','ψ','Ψ','ω','ώ','Ω','Ώ',' ',"'","'",','); 
$english = array('a', 'a','A','A','b','B','g','G','d','D','e','e','E','E','z','Z','i','i','I','th','Th', 'i','i','i','i','I','I','k','K','l','L','m','M','n','N','x','X','o','o','O','O','p','P' ,'r','R','s','s','S','t','T','u','u','Y','Y','f','F','ch','Ch','ps','Ps','o','o','O','O','_','_','_','_'); 
$string  = str_replace($greek, $english, $Name); 

return $string; 
 
} 
$msg = '- Live στο somedomain.gr';
$msg =  greeklish($matchtitle[1]);
echo $msg; //βγαζει Live_sto_somedoamin.gr

και δουλευει αλλα αμα το κανω

function greeklish($Name) 
{  
$greek   = array('α','ά','Ά','Α','β','Β','γ', 'Γ', 'δ','Δ','ε','έ','Ε','Έ','ζ','Ζ','η','ή','Η','θ','Θ','ι','ί','ϊ','ΐ','Ι','Ί', 'κ','Κ','λ','Λ','μ','Μ','ν','Ν','ξ','Ξ','ο','ό','Ο','Ό','π','Π','ρ','Ρ','σ','ς', 'Σ','τ','Τ','υ','ύ','Υ','Ύ','φ','Φ','χ','Χ','ψ','Ψ','ω','ώ','Ω','Ώ',' ',"'","'",','); 
$english = array('a', 'a','A','A','b','B','g','G','d','D','e','e','E','E','z','Z','i','i','I','th','Th', 'i','i','i','i','I','I','k','K','l','L','m','M','n','N','x','X','o','o','O','O','p','P' ,'r','R','s','s','S','t','T','u','u','Y','Y','f','F','ch','Ch','ps','Ps','o','o','O','O','_','_','_','_'); 
$string  = str_replace($greek, $english, $Name); 

return $string; 
 
} 


$originalPage3 = file_get_contents( 'http://www.somedomain.com/blahblah' );
if ( !preg_match( '|<TITLE>(.*?)</TITLE>|', $originalPage3 , $matchtitle ) )

{

    echo "Sorry, I could not find the hot image.";
    //bye
    exit();
	
}
$msg = $matchtitle[1]; 
$msg =  greeklish($matchtitle[1]);
echo $msg;

Δεν δουλευει.

 

Τσπ πως μπορώ να κάνω κάτι για να αφαιρώ η να κανω str_replace σε ελληνικα?

 

Ευχαριστω

 

Δημοσ.

Γενικά το πρόβλημά σου είναι ότι το encoding της εισόδου που έχεις και το encoding του κώδικά σου (ο οποίος περιλαμβάνει τα search/replace strings) δεν είναι το ίδιο.

 

Η απλούστερη λύση θα ήταν να υποθέσεις πως η είσοδος είναι UTF-8 (κατά 99% ισχύει) και να σώσεις το αρχείο σου επίσης σαν UTF-8. Αυτό το λέω καθαρά από πρακτικής άποψης γιατί και πάλι διάφορα πράγματα μπορούν να πάνε στραβά. Αλλά για την περίπτωσή σου είναι μάλλον good enough.

 

Επίσης, δε χρειάζεσαι ούτε ένα str_replace εδώ, αφού έχεις regular expression μπορείς απλά να κάνεις capture μόνο το τμήμα που σ' ενδιαφέρει να κρατήσεις.

if ( !preg_match( '|<TITLE>(.*?)\s*-[^-]*somedomain\.gr</TITLE>|', $originalPage3 , $matchtitle ) )
{
    die('whatever');
}
$title = $matchtitle[1]; 
  • Like 1
Δημοσ.

 

Γενικά το πρόβλημά σου είναι ότι το encoding της εισόδου που έχεις και το encoding του κώδικά σου (ο οποίος περιλαμβάνει τα search/replace strings) δεν είναι το ίδιο.

 

Η απλούστερη λύση θα ήταν να υποθέσεις πως η είσοδος είναι UTF-8 (κατά 99% ισχύει) και να σώσεις το αρχείο σου επίσης σαν UTF-8. Αυτό το λέω καθαρά από πρακτικής άποψης γιατί και πάλι διάφορα πράγματα μπορούν να πάνε στραβά. Αλλά για την περίπτωσή σου είναι μάλλον good enough.

 

Επίσης, δε χρειάζεσαι ούτε ένα str_replace εδώ, αφού έχεις regular expression μπορείς απλά να κάνεις capture μόνο το τμήμα που σ' ενδιαφέρει να κρατήσεις.

if ( !preg_match( '|<TITLE>(.*?)\s*-[^-]*somedomain\.gr</TITLE>|', $originalPage3 , $matchtitle ) )
{
    die('whatever');
}
$title = $matchtitle[1]; 

Ευχαριστω..αυτο δουλεψε...

 

απλα ακομα μαθαινω.

 

αυτο τι κανει

\s*-

φιλτραρι?

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...