Does not return the value of the variable [closed]

3

I put the code in the paste bin: link

   foreach ($linhas as $novalinha){
    $novoTituloSlug = get_string_between($novalinha, 'id="', '">');
    echo $novoTituloSlug;
    $novalinhas = $novalinhas .  "<link>http://localhost/site/" . $novoTituloSlug . "</link>" . "\r\n";

No echo $novoTituloSlug; I have the result: valor1valor2valor3 .

But below line does not print the value, if I put echo I get the error:

  

Parse error: syntax error, unexpected 'echo' (T_ECHO).

Follow the complete code:

function get_string_between($string, $start, $end)
{
    $string = " " . $string;
    $ini = strpos($string, $start);
    if ($ini == 0) return "";
    $ini+= strlen($start);
    $len = strpos($string, $end, $ini) - $ini;
    return substr($string, $ini, $len);
}

// Lê conteúdo do txt
$documento = file_get_contents($arquivo);
$linhas = explode("<ul", $documento);
$novalinhas = "";
$novoPostId = 100;
foreach($linhas as $novalinha)
{
    $novoTitulo = "TÍTULO I";
    $novaData = date(DATE_RFC822);
    $novaData2 = date("Y-m-d h:i:s");
    $novoTituloSlug = get_string_between($novalinha, 'id="', '">');
    echo $novoTituloSlug;
    $novaCategoria = "constituicao-da-republica-federativa-do-brasil-de-1988";
    $novoTituloCategoria = "CONSTITUIÇÃO DA REPÚBLICA FEDERATIVA DO BRASIL DE 1988";
    $novalinhas = $novalinhas . "<item>" . "\r\n";
    $novalinhas = $novalinhas . "<title>" . $novoTitulo . "</title>" . "\r\n";
    $novalinhas = $novalinhas . "<link>http://localhost/votanalei/" . $novoTituloSlug . "</link>" . "\r\n";
    $novalinhas = $novalinhas . "<pubDate>" . $novaData . "</pubDate>" . "\r\n";
    $novalinhas = $novalinhas . "<dc:creator><![CDATA[ale]]></dc:creator>" . "\r\n";
    $novalinhas = $novalinhas . "<guid isPermaLink='false'>http://localhost/votanalei/?p=" . $novoPostId . "</guid>" . "\r\n";
    $novalinhas = $novalinhas . "<description></description>" . "\r\n";
    $novalinhas = $novalinhas . "<content:encoded><![CDATA[<ul" . $novalinha . "]]></content:encoded>" . "\r\n";
    $novalinhas = $novalinhas . "<excerpt:encoded><![CDATA[]]></excerpt:encoded>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_id>" . $novoPostId . "</wp:post_id>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_date>" . $novaData2 . "</wp:post_date>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_date_gmt>" . $novaData2 . "</wp:post_date_gmt>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:comment_status>open</wp:comment_status>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:ping_status>open</wp:ping_status>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_name>" . $novoTituloSlug . "</wp:post_name>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:status>publish</wp:status>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_parent>0</wp:post_parent>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:menu_order>0</wp:menu_order>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_type>post</wp:post_type>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_password></wp:post_password>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:is_sticky>0</wp:is_sticky>" . "\r\n";
    $novalinhas = $novalinhas . "<category domain='category' nicename='" . $novaCategoria . "'><![CDATA[" . $novoTituloCategoria . "]]></category>" . "\r\n";
    $novalinhas = $novalinhas . "<category domain='post_tag' nicename='" . $novaCategoria . "'><![CDATA[" . $novoTituloCategoria . "]]></category>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:postmeta>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:meta_key>_edit_last</wp:meta_key>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:meta_value><![CDATA[1]]></wp:meta_value>" . "\r\n";
    $novalinhas = $novalinhas . "</wp:postmeta>" . "\r\n";
    $novalinhas = $novalinhas . "</item>" . "\r\n";
    $novoPostId = $novoPostId + 5;
}

$file = fopen("test.txt", "w");
$results = fwrite($file, $novalinhas);
fclose($file);
?>
    
asked by anonymous 28.04.2015 / 21:35

1 answer

0

Your code works.

function get_string_between(){
    return 'teste';
}

$linhas = array(1,2,3,4,6,7);

$novalinhas = '';

foreach ($linhas as $novalinha){
    $novoTituloSlug = get_string_between($novalinha, 'id="', '">');
    echo $novoTituloSlug;
    $novalinhas = $novalinhas .  "<link>http://localhost/site/" . $novoTituloSlug . "</link>" . "\r\n";
    echo $novalinhas;
}

Demo →

What I believe is happening, is that in your local file, you forgot to enter a semicolon ; or something like this, follow an example code with the error you reported.

function get_string_between(){
    return 'teste';
}

$linhas = array(1,2,3,4,6,7);

$novalinhas = '';

foreach ($linhas as $novalinha){
    $novoTituloSlug = get_string_between($novalinha, 'id="', '">');
    echo $novoTituloSlug;
    $novalinhas = $novalinhas .  "<link>http://localhost/site/" . $novoTituloSlug . "</link>" . "\r\n"
    echo $novalinhas;
}

Demo →

Complete code working:

function get_string_between($string, $start, $end){
    return 'teste';
}

$linhas = array(1,2,3,4,5,6);
$novalinhas = "";
$novoPostId = 100;
foreach($linhas as $novalinha)
{
    $novoTitulo = "TÍTULO I";
    $novaData = date(DATE_RFC822);
    $novaData2 = date("Y-m-d h:i:s");
    $novoTituloSlug = get_string_between($novalinha, 'id="', '">');
    echo $novoTituloSlug;
    $novaCategoria = "constituicao-da-republica-federativa-do-brasil-de-1988";
    $novoTituloCategoria = "CONSTITUIÇÃO DA REPÚBLICA FEDERATIVA DO BRASIL DE 1988";
    $novalinhas = $novalinhas . "<item>" . "\r\n";
    $novalinhas = $novalinhas . "<title>" . $novoTitulo . "</title>" . "\r\n";
    $novalinhas = $novalinhas . "<link>http://localhost/votanalei/" . $novoTituloSlug . "</link>" . "\r\n";
    $novalinhas = $novalinhas . "<pubDate>" . $novaData . "</pubDate>" . "\r\n";
    $novalinhas = $novalinhas . "<dc:creator><![CDATA[ale]]></dc:creator>" . "\r\n";
    $novalinhas = $novalinhas . "<guid isPermaLink='false'>http://localhost/votanalei/?p=" . $novoPostId . "</guid>" . "\r\n";
    $novalinhas = $novalinhas . "<description></description>" . "\r\n";
    $novalinhas = $novalinhas . "<content:encoded><![CDATA[<ul" . $novalinha . "]]></content:encoded>" . "\r\n";
    $novalinhas = $novalinhas . "<excerpt:encoded><![CDATA[]]></excerpt:encoded>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_id>" . $novoPostId . "</wp:post_id>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_date>" . $novaData2 . "</wp:post_date>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_date_gmt>" . $novaData2 . "</wp:post_date_gmt>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:comment_status>open</wp:comment_status>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:ping_status>open</wp:ping_status>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_name>" . $novoTituloSlug . "</wp:post_name>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:status>publish</wp:status>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_parent>0</wp:post_parent>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:menu_order>0</wp:menu_order>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_type>post</wp:post_type>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:post_password></wp:post_password>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:is_sticky>0</wp:is_sticky>" . "\r\n";
    $novalinhas = $novalinhas . "<category domain='category' nicename='" . $novaCategoria . "'><![CDATA[" . $novoTituloCategoria . "]]></category>" . "\r\n";
    $novalinhas = $novalinhas . "<category domain='post_tag' nicename='" . $novaCategoria . "'><![CDATA[" . $novoTituloCategoria . "]]></category>" . "\r\n";
    $novalinhas = $novalinhas . "<wp:postmeta>" . "\r\n";
        $novalinhas = $novalinhas . "<wp:meta_key>_edit_last</wp:meta_key>" . "\r\n";
        $novalinhas = $novalinhas . "<wp:meta_value><![CDATA[1]]></wp:meta_value>" . "\r\n";
    $novalinhas = $novalinhas . "</wp:postmeta>" . "\r\n";
    $novalinhas = $novalinhas . "</item>" . "\r\n";
    $novoPostId = $novoPostId + 5;
    echo $novalinhas;
}

Demo →

    
29.04.2015 / 00:24