【问题标题】:Substitute a variable in PHP expression with its value用它的值替换 PHP 表达式中的变量
【发布时间】:2016-07-08 06:31:27
【问题描述】:

这很简单,但我自己无法解决。

我正在尝试使用 substr 提取字符串的一部分:

$Text=substr($FullText, 0, 6);

其中 $FullText 是一个包含字符串的变量。

我猜 substr 不喜欢变量,需要一个字符串在配额中。

我的问题是如何用它的值替换 PHP 表达式中的变量?

非常感谢您!

【问题讨论】:

  • substr 喜欢变量。请添加具体示例以获得有用的帮助。
  • 你到底想输出什么?你的意见是什么。请先澄清这些。
  • 请提供一个具体的例子.....$FullText的值是多少?你能指望什么?你得到了什么? Demo
  • $FullText=$ExchangePart->Item(5)->nodeValue; //actual value of the variable is: "1.6598 6.479460 5.4545" $Text=substr($FullText, 0, 6); //$Text=$ExchangePart->Item(5)->nodeValue; echo $Text;
  • @Rat2good 为什么不先尝试回显 $FullText 以查看其中是否有任何内容,然后再尝试获取其子字符串。

标签: php substr


【解决方案1】:

您在对该问题的评论中发布了此代码片段:

$FullText=$ExchangePart->Item(5)->nodeValue;
//actual value of the variable is: "1.6598 6.479460 5.4545"
$Text=substr($FullText, 0, 6);
//$Text=$ExchangePart->Item(5)->nodeValue;
echo $Text;

看起来您正在这里处理 XML。 SimpleXMLElement 类(simplexml_*() functions 创建的对象的类型)是一个多面的野兽。如果您尝试:

echo($ExchangePart->Item(5)->nodeValue);

print_r($ExchangePart->Item(5)->nodeValue);

它显示为一个字符串,但实际上它也是一个SimpleXMLElement 对象。

这个问题的解决方法很简单:你要把explicitly convert你想要的值变成一个字符串:

$FullText = (string)$ExchangePart->Item(5)->nodeValue;

现在$FullText 的值是一个字符串;您可以安全地将其传递给任何字符串处理函数,它将按照文档中的说明工作。

【讨论】:

    【解决方案2】:
    $text=substr($fulltext, 0, 6);
    

    它将起作用,Substr 函数接收双引号中的字符串,或者您可以将 php 变量放入其中。尝试回应这一点,它将按要求工作

    【讨论】:

    • 不幸的是,它不起作用......如果我写这样的东西它会起作用:$text=substr("abcdefgh", 0, 6); 它会返回 abcdef 但是当我使用变量时它不起作用
    • @Rat2good 不工作是什么意思?输出是什么?
    • 回显$text时没有输出;
    • @Rat2good 然后向我们展示完整的代码,而不仅仅是部分代码。
    • @Rat2good,你能试试运行$input="abcdefgh"; $text=substr($input, 0, 6);吗?确实没有理由不使用变量。
    猜你喜欢
    • 2015-08-14
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多