Trim php 的文本

Trim a Text for a php

我在 chronoforms 中有代码,可以在每次有人填写表格时获取电子邮件的页面标题。但是,我总是得到带有额外数据的页面标题。

例如:

"Empodera tu ser con PNL - Fundación Empoder" 

我想删除

" - Fundación Empoder"

但我找不到答案

<input type='hidden' name='page_url' id='page_url' value='<?php echo \JURI::getInstance()->toString(); ?>' />

<?php
     $jdoc = \JFactory::getDocument();
?>
<input type='hidden' name='page_title' id='page_title' value='<?php echo $jdoc->getTitle(); ?>' />

如果您能提供帮助,请提前致谢:D

罗德里戈

查看 str_replace()

$text = 'Empodera tu ser con PNL - Fundación Empoder';
echo str_replace(' - Fundación Empoder', '', $text); // "Empodera tu ser con PNL"

这可能不是最优雅的解决方案,但如果您要删除的部分是不变的,它肯定会起作用。否则,您需要发挥创意,或许可以研究模式 matching/regex/etc.

如果你想做这样的事情,你需要确保总有一些你可以寻找的模式。例如,如果我们知道只有一个破折号,那么我们可以这样做:

<?php
$title_pieces = explode("-", $jdoc->getTitle());
 $title_pieces = count($title_pieces > 1) ? 
   array_pop($title_pieces) : $title_pieces;
$page_title = implode('-', $title_pieces);
?>
<input type='hidden' name='page_title' id='page_title' value='<?php echo $page_title; ?>' />

我认为有更好的方法可以做到这一点,但如果 chronoforms 不允许这样做,那么这是一种 hacky 方法。

感谢大家帮忙解决了这个问题

<input type='hidden' name='page_url' id='page_url' value='<?php echo \JURI::getInstance()->toString(); ?>' />

<?php
     $jdoc =  \JFactory::getDocument();
     $gettit =  $jdoc->getTitle();
     $alltrim = str_replace(' - Fundación Empoder', '', $gettit);
?>
<input type='hidden' name='page_title' id='page_title' value='<?php echo $alltrim; ?>' />

是的,它是一个常数,这正是我需要的...

谢谢罗德里戈 :D